我有一个简单的课程
class A{
constructor(){
this.loadComponents().then(function(values) {callbackOnLoad();});
}
callbackOnLoad(){
//do some things
}
loadComponents(){
...
return Promise.all([p1,p2,p3,p4,p5,p6,p7,p8]);
}
}
所有诺言都实现后,我无法调用callbackOnLoad。我知道“此”取决于调用者,因此我理解为什么callbackOnLoad不起作用。我怎么解决这个问题?我该如何构造/设计代码?
答案 0 :(得分:2)
正确的方法是先呼叫然后在Promise.all
之后立即捕获。
class A{
constructor() {
this.loadComponents();
}
callbackOnLoad = () => {
//do some things
}
loadComponents = () => {
return Promise.all([p1,p2,p3,p4,p5,p6,p7,p8]).then((values) => {
this.callbackOnLoad();
}).catch((error) => {
console.log(error);
});
}
}