如何延迟下一次调用rxjs

时间:2017-04-13 17:35:51

标签: rxjs observable

我有一个可观察的canContinue: Subject<boolean>。我想在100ms延迟后拨打下一个电话,你将如何在rxjs中执行此操作?

ex:this.canContinue.wait(100).next(true);

我可以使用setTimeout但是如果rx内置了一种方法,我宁愿使用它。

编辑:对不起,它应该是一个主题而不是一个Observable。 延迟运算符有点做我想要的,但我在订阅时添加。

this.canContinue.delay(100).subscribe(s => //do something) 但是每次都会延迟,我有时只想延迟。

在我的用例中,我有一个按钮,可以将您带到表单中的另一组选项,但是选择一个选项会自动带您进入下一个选项,但是我想要延迟,因为它的震动可以立即看到下一个选项。

1 个答案:

答案 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)