Promise 完成后调用 class 的方法

Call Method of class after Promise is fullfilled

我有一个简单的class

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。我知道 "this" 取决于调用者,所以我理解为什么 callbackOnLoad 不起作用。我怎么解决这个问题?我如何 structure/design 我的代码?

正确的方法是在 Promise.all 之后立即调用 then & catch。

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);
    });
  }
}