【发布时间】:2019-03-01 09:59:55
【问题描述】:
我想发送一个 API 请求,然后轮询另一个端点,直到带有 success: true 正文的响应从第二个端点返回。我正在使用 Angular 的 HTTPClient 来提出我的请求。我最初的想法是这样做:
createConversion(request): Observable<any> {
return this.http.post('/endpoint', request).pipe(
// This is the problem: I want to start polling before this post() call emits
mergeMap((response) => {
// Start polling
return timer(0, 5000).pipe(
takeUntil(this.converted$),
concatMap(() => {
return this.http.get('/second-endpoint')
})
)
})
);
但是,直到第一个 post() 调用与第一个请求的响应一起发出后,才会调用 mergeMap。是否有一个 RxJS 运算符可以让我在第一个 post() 调用发出之前开始轮询?
【问题讨论】:
标签: angular http rxjs observable