Я использую Angular5 в своем проекте.Я реализовал методы в своем сервисе API для возврата обещаний
method(): Promise<any> {
return new Promise<any>((resolve,reject) => {
this.http.get(url).subscribe((response) => {
resolve(response);
}, (error) => reject(error));
});
}
В компоненте необходимо убедиться, что все данные были получены перед дальнейшими операциями.Я пытался сделать это:
const fetch = [];
fetch.push(this.api.method());
fetch.push(this.api.method1());
fetch.push(this.api.method2());
Promise.all(fetch).then(() => alert('data fetched'));
Это никогда не достигло тревоги.Все получается с кодом 200.
Когда я приостановил выполнение в строке с Promise.all
, я увидел, что мои Обещания были преобразованы в ZoneAwarePromise
.
Это хорошо работает, когда я простоцепочка их вложенных вызовов в .then (s)
Почему Promise был преобразован?Как заставить Promise.all работать?