我想通过promise异步的给obj新增一个abc的方法,当我调用test1.abc()的时候浏览器意外的报错了abc这个方法还不存在,想了一下报错是合情合理的。promise是异步执行,而最初的var obj = {}是同步执行,obj没有abc这个属性。哪怕是实例化的时候先调用obj.init()依然没用。我应该如何正确的调用test1.abc()。var ppk = new Client(/Service/); function test() { var obj = {}; obj.init = function() { return new Promise(function(resolve,reject) { resolve(5) }).then(function(value) { obj.abc = function() { alert(123) } }) } obj.init(); return obj; } var test1 = new test(); test1.abc()
1 回答
慕侠2389804
TA贡献1719条经验 获得超6个赞
function test() {
var obj = {};
obj.init = function() {
return new Promise(function(resolve, reject) {
return resolve(5);
}).then(function(value) {
obj.abc = function() {
alert(123);
};
});
};
return obj;
}
var test1 = new test();
test1.init().then(function() {
test1.abc();
});
添加回答
举报
0/150
提交
取消