【问题标题】:Keep tracking "original" item in RxJs继续跟踪 RxJs 中的“原始”项目
【发布时间】:2016-12-04 09:47:19
【问题描述】:

我需要访问流的“原始”值。

我的用例:

  1. 迭代 URL 列表。
  2. 请求每个 URL。
  3. 处理响应,此时我还需要第一次“迭代”的 URL。

示例代码:

const Rx = require('rxjs');
const request = require('request');

// my request method in Rx version
const req = Rx.Observable.bindNodeCallback(request);
const list = [/*list of URLs*/];

Rx.Observable.from(list)
    .flatMap(req) // eq to: .flatMap(url => req(url))
    .map(response => {
        // here I need the response object
        // and the URL I used to request it (the "original" value).
    });

有什么想法吗? :)

【问题讨论】:

    标签: javascript functional-programming rxjs rxjs5


    【解决方案1】:

    FlatMap 有一个重载,它接受输入和每个生成的值供您映射:

    .flatMap(
      url => doRequest(url),
      (url, res) => ({ url, res }) 
    )
    

    【讨论】:

      猜你喜欢
      • 2021-02-25
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多