我已经多次看到这个问题,但我不知道如何实现这个问题来解决我的问题。
我基本上有一组需要按顺序执行的 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'),
];
Run Code Online (Sandbox Code Playgroud)
所以我目前正在使用 forkJoin 但这会同时运行请求,这不是我想要的。
forkJoin(observableBatch).subscribe(result => {
// success
}, error => {
// log error
});
Run Code Online (Sandbox Code Playgroud)
我读到 usingconcatMap可能是答案,但我如何在可观察数组上使用它?
尝试使用 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
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1691 次 |
| 最近记录: |