Обещание <any>превращается в ZoneAwarePromise - PullRequest
0 голосов
/ 25 мая 2018

Я использую 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 работать?

1 Ответ

0 голосов
/ 25 мая 2018

Как насчет использования forkJoin вместо Promise.all?делая что-то вроде:

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