【问题标题】:Send requests to a server one at a time with RxJS使用 RxJS 一次向服务器发送一个请求
【发布时间】:2017-03-02 21:22:42
【问题描述】:

我有一组有效负载,我想在每个负载上执行几个异步操作,然后发送到服务器。我正在尝试这样做:

Rx.Observable.from(payloads)
    .flatMap(item => ... do something A something async, return modified payload)
    .flatMap(item => ... do something B)
    .flatMap(item => ... post to server)
    .subscribe();

这行得通....

但它似乎一次对每个有效负载执行 A,然后对每个有效负载执行一次 B,然后一次性发布每个有效负载。

包含可能数千个有效负载的列表。有没有什么方法可以一次一个地遍历payloads?

【问题讨论】:

标签: asynchronous rxjs


【解决方案1】:

如果需要为每个有效负载执行 a->b->c:

Rx.Observable.from(payloads)
  .concatMap(payload => doA())
  .concatMap(resA => doB())
  .concatMap(resB => doC())
  .subscribe(console.log)

concatMap 将等到前一个发射完成后再开始下一个发射。这将限制您的并发性。

【讨论】:

  • 好一个!不应该在仍然困倦的时候回答问题
猜你喜欢
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 2015-06-15
相关资源
最近更新 更多