Используйте async в подписке в Angular - PullRequest
0 голосов
/ 01 мая 2019

У меня есть Субъект, который раньше был цепочкой асинхронного запуска.

Иногда кажется, что работает правильно, иногда похоже, что подписчик не ждет решения.

behavior.subscribe(async (result)=> {
 await fnc1(result);
});
fnc1(in) {
 return new Promise(async (resolve,reject) => {
  for(let w of in.split(',')) {
   await fnc2(w);
  }
  //if for finished, go to next subscribed value
  resolve();
 });
}
fnc2(w) {
 return new Promise((resolve,reject) => {
  let i = 0;
  setInterval( () => {
   i = i + 1;
   if(i == 10) {
    //go next value in for loop
    resolve();
   }
  },100);
 });
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...