代码之家  ›  专栏  ›  技术社区  ›  user3579222

承诺完成后类的调用方法

  •  0
  • user3579222  · 技术社区  · 6 年前

    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不工作。我怎样才能解决这个问题?如何构造/设计代码?

    0 回复  |  直到 6 年前
        1
  •  2
  •   Avanthika    6 年前

    正确的方法是在 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);
        });
      }
    }