有没有人曾经使用过rxjs中的Promise和Promise.all?

时间:2019-01-22 07:46:51

标签: angular rxjs6

有人在http中使用过rxjs中的toPromisePromise.all吗?请举个例子。
如何在promise.all的组件中返回两个请求都成功的信息,例如API是否成功?

getPostAsync() {
    return this.http.get('https://jsonplaceholder.typicode.com/posts')
                    .pipe(map((res:Response) => { return res.json();}))
                    .pipe(catchError((error) => { return throwError(error);}))
}
getPostAsync1() {
    return this.http.get('https://jsonplaceholder.typicode.com/posts/1')
                    .pipe(map((res:Response) => { return res.json();}))
                    .pipe(catchError((error) => { return throwError(error);}))
}

2 个答案:

答案 0 :(得分:2)

在处理请求时,我不会使用toPromisePromise.all。最好使用可观察对象和运算符来处理它。我写了article about replacing Promises with RxJS。我会使用Promise.all来监听两个或更多请求的完成,而不是forkJoin

答案 1 :(得分:0)

您可以将Combinelatest用于多个请求 https://www.learnrxjs.io/operators/combination/combinelatest.html

combineLatest(this.http.get('/api'), this.http.get('/api2'))
.subscribe((res: any) => {
    const res = res[0];
    const res2 = res[1];
});