如何解决在对象中绑定函数调用
示例:
var obj = {
endUpdate: function(){
... (async stuff from library,cannot modify this code)
}
}
我想写这样的东西,知道什么时候endUpdate被调用
obj.on('endUpdate',function(){
// do stuff here when "endUpdate" in above object is called
})
解决方法
您可以像这样轻松创建订阅者功能
var obj = {
listeners: {
endUpdate: []
},on: function(name,callbackFn){
this.listeners[name].push(callbackFn);
},runListeners: function(name) {
this.listeners[name].forEach((fn) => fn());
},endUpdate: async function(){
await someStuffFromLib();
this.runListeners('endUpdate');
}
}
否则你可以增强对象和链异步功能,只要你一直保持链
var obj = {
endUpdate: function(){
const thisIsAPromise = someStuffFromLib();
return thisIsAPromise;
}
}
const newObj = {
endUpdate: (...args) => obj.endUpdate(...args).then(
(result) => { console.log(result)})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。