在 RxJs 中继续跟踪 "original" 项
Keep tracking "original" item in RxJs
我需要访问流的 "original" 值。
我的用例:
- URL 的迭代列表。
- 请求每个URL。
- 处理响应,此时,我还需要第一个"iteration"的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).
});
有什么想法吗? :)
FlatMap 有一个重载,它接受输入和每个生成的值供您映射:
.flatMap(
url => doRequest(url),
(url, res) => ({ url, res })
)
我需要访问流的 "original" 值。
我的用例:
- URL 的迭代列表。
- 请求每个URL。
- 处理响应,此时,我还需要第一个"iteration"的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).
});
有什么想法吗? :)
FlatMap 有一个重载,它接受输入和每个生成的值供您映射:
.flatMap(
url => doRequest(url),
(url, res) => ({ url, res })
)