Javascript “保持跟踪”;“原件”;RxJs中的项目

Javascript “保持跟踪”;“原件”;RxJs中的项目,javascript,functional-programming,rxjs,rxjs5,Javascript,Functional Programming,Rxjs,Rxjs5,我需要访问流的“原始”值 我的用例: 正在迭代URL列表 请求每个URL 处理响应,此时,我还需要来自第一次“迭代”的URL 示例代码: const Rx=require('rxjs'); const request=require('request'); //Rx版本中的我的请求方法 const req=Rx.Observable.bindNodeCallback(请求); const list=[/*URL列表*/]; 可观察到的接收源(列表) .flatMap(req)//eq到:.fla

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

我的用例:

  • 正在迭代URL列表
  • 请求每个URL
  • 处理响应,此时,我还需要来自第一次“迭代”的URL
  • 示例代码:

    const Rx=require('rxjs');
    const request=require('request');
    //Rx版本中的我的请求方法
    const req=Rx.Observable.bindNodeCallback(请求);
    const list=[/*URL列表*/];
    可观察到的接收源(列表)
    .flatMap(req)//eq到:.flatMap(url=>req(url))
    .map(响应=>{
    //这里我需要响应对象
    //以及我用来请求它的URL(“原始”值)。
    });
    

    有什么想法吗?:)

    FlatMap有一个重载,它将输入和每个生成的值都用于映射:

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