【问题标题】:change parallel observable response into sequential response将并行可观察响应更改为顺序响应
【发布时间】:2020-08-05 20:13:39
【问题描述】:

我将此方法作为处理和执行多个 api http 调用并返回扁平化的 observables 的遗留代码,并且由于 forkJoin,所有过程都是并行的,并且由于某些原因我想将过程更改为顺序,我已经阅读了一些文章和大部分都推荐使用concatMap,但我其实不知道代码中使用concatMap的正确方法,也不知道有什么其他的方法。

方法如下:

handleDataPost(list: Array<{ url: string, data: any }>): Observable<any> {
console.log('start data posting');
const observables: Array<Observable<any>> = [];
list.forEach(eachRequestObject => {
  observables.push(this.apiService.postData(eachRequestObject.url, JSON.stringify(eachRequestObject.data)));
});
console.log('list of observables', observables);
return forkJoin(observables);
}

【问题讨论】:

    标签: javascript angular typescript rxjs


    【解决方案1】:

    又短又甜:

    import {concat} from "rxjs";
    
    ...
    
    return concat(...observables);
    

    From the docs:

    创建一个输出 Observable,它依次从给定的 Observable 发出所有值,然后继续下一个。

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 2018-06-05
      • 1970-01-01
      • 2019-08-10
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多