【发布时间】:2019-05-23 04:33:48
【问题描述】:
假设我有两个 observables。每次第一个发射时,我想等待 2 秒,看看在此期间另一个 observable 是否发射了一些东西。如果是,不要发射任何东西。如果没有,发射。
例子:
const start$ = this.events.pipe(
delay(1000),
takeUntil(theSecondObservable) // WHAT SHOULD BE HERE?
).subscribe((value) => {
console.log(value);
});
【问题讨论】:
-
您的示例正在工作,因为我了解您的问题,我不明白,您的问题是什么?实际上你有 "start$" 和 "theSecondObservable" 是 observable 的,并且你的 "start$" 实际上会在延迟之后发射并且只有当 "theSecondObservable" 没有发射任何东西时才会发射
-
这是正确的,但我希望每次 start 发出一些东西时都以这种方式发生。这样,直到完成 observable,什么都不会发生。现在清楚了吗?谢谢,
-
请在帖子下方使用“编辑”在您的帖子中添加说明(尽管我认为您的意思是“......每次 this.events 发出一些东西......”,而不是“......每次开始都会发出一些东西......”)。请进一步澄清:您真的想延迟主要事件还是只是您解决问题的尝试?例如:如果在 1000 毫秒(2000 毫秒)内没有阻塞事件,您是否希望尽快真正发出?您可能还想绘制一个 ASCII 艺术图/时间线。
-
现在问题清楚了吗?我还提交了我能够用部分答案做出的最终解决方案。
标签: javascript typescript rxjs