如何解决如何编写此RxJs代码,以便输出之间的延迟是动态的?
我正在写游戏,并且有一个事件队列。我已经使用RxJ修改了主题,使其成为“限速”,即,它仅每2500秒输出一个新值:
this.q = new Subject();
this.q
.pipe(
concatMap(item => of(item).pipe(
concat(
of('ignored').pipe(
delay(2500),ignoreElements()
)
)
))
)
.subscribe(evt => {
this.processEvent(evt);
});
当网络代码收到来自服务器的消息时,它将调用this.q.next(evt)
。
这对于以恒定量限制静态速率起作用。但是我意识到有些事件在下一次事件发生之前应该具有较短的延迟,尤其是某些事件应该具有更长的延迟,以便让UI进行动画处理或让用户消化信息。
是否可以将常量2500
更改为从item
提取的值,例如item.delay
?
谢谢!
解决方法
您可能想尝试以下方法:
this.q
.pipe(
concatMap(item => of(item).pipe(delay(item.delay))))
)
)
.subscribe();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。