我有一个可观察的canContinue: Subject<boolean>
。我想在100ms延迟后拨打下一个电话,你将如何在rxjs中执行此操作?
ex:this.canContinue.wait(100).next(true);
我可以使用setTimeout但是如果rx内置了一种方法,我宁愿使用它。
编辑:对不起,它应该是一个主题而不是一个Observable。 延迟运算符有点做我想要的,但我在订阅时添加。
this.canContinue.delay(100).subscribe(s => //do something)
但是每次都会延迟,我有时只想延迟。
在我的用例中,我有一个按钮,可以将您带到表单中的另一组选项,但是选择一个选项会自动带您进入下一个选项,但是我想要延迟,因为它的震动可以立即看到下一个选项。
答案 0 :(得分:0)
正如@paulpdaniels指出的那样,你的例子有点不对,所以我试图推断出你想要的东西。有几种方法可以延迟元素的发射。这将仅延迟true
元素的发射。
Rx.Observable.of(true,false,true).mergeMap(value => {
return value === true
? Rx.Observable.of(value).delay(100)
: Rx.Observable.of(value);
}).subscribe(console.log);
false
true
true
这会延迟一切:
Rx.Observable.of(true,false,true).delay(100).subscribe(console.log)