Rx.Observable.interval,每个事件具有不同的间隔
Rx.Observable.interval with different interval for each event
我有一堆事件,每个事件都必须在前一个事件之后触发,并具有特定于此事件的延迟。
Rx.Observable.interval
提供了仅提供一个间隔的可能性。
有没有办法提供不同的间隔?
解决方案是@NiklasFasching提出的修改版本
Rx.Observable.from(events)
.concatMap(function(event) {
return Rx.Observable.timer(event.delay);
})
.subscribe(...)
有generateWithRelativeTime
运算符。官方文档在这里。简而言之,运算符允许您指定一个序列,您可以在发出每个值时进行调整。它类似于 for 循环,不同之处在于值在您选择的时刻异步发出。
例如,同步 for 循环:
for (i=1;i<4; i++) {do something}
可以转换为由 100ms、200ms、300ms 分隔的值序列
// Generate a value with an absolute time with an offset of 100ms multipled by value
var source = Rx.Observable.generateWithRelativeTime(
1, // initial value
function (x) { return x < 4; }, // stop predicate
function (x) { return x + 1; }, // iterator
function (x) { return x; }, // value selector
function (x) { return 100 * x; } // time selector
).timeInterval();
通过根据需要调整时间选择器,您可以改变值之间的间隔。
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- Rx.Observable.interval,每个事件具有不同的间隔
- 如何停止计时器.在原生脚本中使用点击事件或离开页面设置interval