【问题标题】:How can I run delayed logic with rxjs after receiving a value from a subscription?从订阅接收到值后,如何使用 rxjs 运行延迟逻辑?
【发布时间】:2020-11-15 17:23:25
【问题描述】:

我想在订阅后运行我的部分逻辑,并有额外的延迟(使用 RxJS)。我知道 finalize 运算符,我可以将它与管道一起使用,但这会导致我的 observable 完成后立即执行。

有没有办法在运行 finalize 之前产生延迟?

附加信息:

我正在订阅服务器调用,这意味着我只期待一个值。

【问题讨论】:

  • 你试过concat(main$, timer(N).pipe(finalize(() => {...})))吗?
  • 所以你想立即发出结果,然后在 observable 完成之前等待指定的时间,即使你只期望一次发射?请问这种行为的用例是什么?

标签: javascript typescript rxjs delay rxjs6


【解决方案1】:

只需在管道中使用延迟运算符即可。 Observable.pipe(deplay(200))...

资源:https://rxjs-dev.firebaseapp.com/api/operators/delay

【讨论】:

  • 这也会延迟实际值的发布。我希望在值发出之后发生延迟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
  • 2020-07-27
相关资源
最近更新 更多