我有很多事件,每个事件必须在前一个事件之后被触发,并且具有特定于此事件的延迟。
Rx.Observable.interval
可以提供一个间隔。
有没有办法提供不同的间隔?
答案 0 :(得分:0)
有client.Folders.Inbox.Search("SUBJECT HELLO_", ImapX.Enums.MessageFetchMode.Minimal);
运算符。官方文件是here。简而言之,操作员允许您指定一个序列,您可以在发出每个值时进行调整。它类似于for循环,除了在您选择的时刻异步发出值。
例如,同步for循环:
generateWithRelativeTime
可以转换为由100ms,200ms,300ms
分隔的值序列for (i=1;i<4; i++) {do something}
通过根据需要调整时间选择器,您可以使值之间的间隔发生变化。
答案 1 :(得分:0)
解决方案是@NiklasFasching提议的修改版本
Rx.Observable.from(events)
.concatMap(function(event) {
return Rx.Observable.timer(event.delay);
})
.subscribe(...)