Вызов метода класса после выполнения Promise - PullRequest
2 голосов
/ 07 марта 2019

У меня есть простой класс

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 не работает.Как я могу решить эту проблему?Как мне структурировать / спроектировать мой код?

1 Ответ

2 голосов
/ 07 марта 2019

Правильный способ сделать это - звонить и ловить сразу после 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);
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...