我已经看过几次这个问题了,但是我无法解决如何解决这个问题。
我基本上有一个需要按顺序执行的http调用数组。具体来说,我需要执行一个,等待它返回然后执行下一个。
let requests = [
this.http.post('http://localhost:4200/api/value', 'one'),
this.http.post('http://localhost:4200/api/value', 'two'),
this.http.post('http://localhost:4200/api/value', 'three'),
this.http.post('http://localhost:4200/api/value', 'four'),
];
所以我当前正在使用forkJoin,但是这同时运行了请求,这不是我想要的。
forkJoin(observableBatch).subscribe(result => {
// success
}, error => {
// log error
});
我使用concatMap
阅读可能是答案,但是如何在可观察变量数组上使用它呢?
答案 0 :(得分:3)
尝试使用RXJS的 concat 功能,请尝试
import { concat } from 'rxjs';
let requests = [
this.http.post('http://localhost:4200/api/value', 'one'),
this.http.post('http://localhost:4200/api/value', 'two'),
this.http.post('http://localhost:4200/api/value', 'three'),
this.http.post('http://localhost:4200/api/value', 'four'),
];
concat(...requests).subscribe(result => {
// success
}, error => {
// log error
});