如何延迟下一个调用rxjs

如何延迟下一个调用rxjs,rxjs,observable,Rxjs,Observable,我有一个可观察的canContinue:Subject。我想在100毫秒延迟后调用next,您在rxjs中如何执行此操作 例如:this.canContinue.wait(100)。next(true) 我可以使用setTimeout,但如果rx内置了一种方式,我更愿意使用它 编辑:对不起,它应该是一个主题而不是一个可观察的。 延迟操作符有点像我想要的,但我在订阅时添加了它 this.canContinue.delay(100).订阅(s=>//做点什么) 但那每次都会耽搁,我只想偶尔耽搁一下

我有一个可观察的
canContinue:Subject
。我想在100毫秒延迟后调用next,您在rxjs中如何执行此操作

例如:
this.canContinue.wait(100)。next(true)

我可以使用setTimeout,但如果rx内置了一种方式,我更愿意使用它

编辑:对不起,它应该是一个主题而不是一个可观察的。 延迟操作符有点像我想要的,但我在订阅时添加了它

this.canContinue.delay(100).订阅(s=>//做点什么)
但那每次都会耽搁,我只想偶尔耽搁一下


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

正如@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)

观察者
没有
下一个
方法,即
观察者
。我假设你想要延迟,但是如果不知道你想用这个来完成什么,很难说。我添加了一些上下文来解释我做得更好@mkulke@Devcon>但每次都会延迟,我只想有时候延迟。@Devcon:有时候到底是什么意思?它是否取决于发出的值,在这种情况下,上述解决方案应起作用:
mergeMap
,然后根据该值返回可观察的or和可观察的w/延迟。如果有时依赖于程序中的某个其他实体,您可能也应该将该实体包装在一个可观察对象中,并使用
with latestfrom(otherEntity$,…)
,并使用它来过滤可观察对象。