可以使用 generateWithRelativeTime
操作符创建简单的可观察对象,这些对象可以生成其下一个发射,并且可以根据先前发射的值确定何时终止。generateWithRelativeTime
的基本形式采用五个参数
- 第一个要发射的项目
- 一个函数,用于测试一个项目以确定是否要发射它(
true
)或终止可观察对象(false
)
- 一个函数,用于根据先前项目的 value 生成要测试和发射的下一个项目
- 一个函数,用于在发射之前转换项目
- 一个函数,指示在发射先前项目后,生成器应该等待多长时间(以毫秒为单位),然后再发射此项目
还可以将 调度器 作为可选的第六个参数传递,generate
将使用它来创建和发出其序列(默认情况下使用 currentThread
)。
示例代码
var source = Rx.Observable.generateWithRelativeTime(
1,
function (x) { return x < 4; },
function (x) { return x + 1; },
function (x) { return x; },
function (x) { return 100 * x; }
).timeInterval();
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); });
Next: {value: 1, interval: 100}
Next: {value: 2, interval: 200}
Next: {value: 3, interval: 300}
Completed
generateWithRelativeTime
存在于以下发行版中
rx.lite.js
rx.lite.compat.js
rx.time.js
(需要 rx.js
或 rx.compat.js
)