【发布时间】:2023-03-06 09:36:01
【问题描述】:
我想使用 RXJS 设置一个 ORDERED 数据流,它以随机间隔(比如每 1-5 秒)发出一个数字,我想将其用作测试 RXJS 其他部分的时间随机数据源。以下代码以随机顺序生成项目(由于延迟),但我希望仅保留随机时间的顺序。
function randomDelay(bottom, top) {
return Math.floor( Math.random() * ( 1 + top - bottom ) ) + bottom;
}
var source = Rx.Observable
.range(1, 10)
.flatMap(function (x) {
return Rx.Observable
.of(x)
.delay(randomDelay(1000,5000));
})
.timeInterval();
var subscription = source.subscribe(
function (x) {
$("#result").append('Next: ' + JSON.stringify(x) + '<br>');
},
function (err) {
$("#result").append('Error: ' + err);
},
function () {
$("#result").append('Completed');
});
正在给我以下输出的变体:
Next: {"value":1,"interval":1229}
Next: {"value":2,"interval":321}
Next: {"value":4,"interval":645}
Next: {"value":5,"interval":28}
Next: {"value":9,"interval":728}
Next: {"value":10,"interval":269}
Next: {"value":3,"interval":107}
Next: {"value":6,"interval":265}
Next: {"value":8,"interval":1038}
Next: {"value":7,"interval":199}
【问题讨论】:
标签: javascript rxjs