RxJs эквивалент Promise.all () - PullRequest
       2

RxJs эквивалент Promise.all ()

0 голосов
/ 18 октября 2018

Что такое эквивалент RxJ для Promise.all (), при котором блок then выполняется только тогда, когда все обещания разрешены?

const request1 = this.http.get('/api/hello').toPromise() // returns a promise
const request2 = this.http.get('/api/there').toPromise() // returns a promise

Promise.all([request1, request2]).then(([response1, response2]) => {
  // executes if/when ALL the promises resolve
  console.log('response1', response1);
  console.log('response2', response2);
}).catch(err => {
  // executes if ANY ONE of the promises fail / reject
  console.log('err', err);
})

Итак, каков эквивалентный подход в RxJ?спасибо

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете использовать forkJoin

Этот оператор лучше всего использовать, когда у вас есть группа наблюдаемых и вы заботитесь только о конечном полученном значении каждого,Вы можете использовать этот оператор для выдачи нескольких запросов.

import {forkJoin, Observable} из "rxjs" ;

Использование

const request1 = this.http.get('/api/hello'); //return an observable
const request2 = this.http.get('/api/there') //return an observable

forkJoin([request1,request2]).subscribe((response)=>{

    //after all the successful requests 
    //response.forEach((eachRes)=>{console.log(eachRes)});
    //or response[0] , response[1]


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