Как ждать выполнения функции до завершения подписки? - PullRequest
0 голосов
/ 21 марта 2019

Я хочу подписаться на Observable, а затем выполнить другую функцию. Моя проблема в том, что это занимает некоторое время, пока запрос не будет завершен. Однако код просто продолжает выполнение сразу после после подписки.

Мне нужна информация, которая будет там после того, как Подписка будет завершена . Без этих данных transformShopList () потерпит неудачу. Когда я запускаю код, вот что происходит.

Как вы можете дождаться окончания подписки, а затем перейти к остальным утверждениям?

this.observable3.subscribe(
  ...
);
// wait here?
this.transformShopList();

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Наблюдаемое излучает событие, и ваша подписка получает его.Переместите свой список магазинов трансформации в ответ на подписку, и он будет выполнен, когда появится наблюдаемое.

https://angular.io/guide/observables

0 голосов
/ 21 марта 2019

У вас будет эта проблема, что бы вы ни делали в Javascript.Асинхронные задачи должны быть связанными .Либо с Promise, Observable, либо с функциями обратного вызова.

Правильный код:

this.observable3.subscribe((...) => {
  ...
  this.transformShopList();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...