在 A 发出一个值后 1 秒后发出 B 的最新值
Emit the latest value of B, 1 second later after A has emmited a value
假设有 2 个可观察对象,可观察对象 A 和可观察对象 B。
当 A 发出一个值时,我想等待 1 秒,然后发出 B 的最新值。如果 A 在等待 1 秒时发出另一个值,我希望它忘记之前的值并再等 1 秒(就像 switchMap 那样).
我怎样才能实现这种行为?
看起来您可以使用 withLatestFrom
运算符轻松完成此操作,如下所示:
const a$ = ...;
const b$ = ...;
a$
.switchMap(v => Observable.of(v).delay(1000))
.withLatestFrom($b.startWith(null), (a, b) => b)
.subscribe(...);
假设有 2 个可观察对象,可观察对象 A 和可观察对象 B。 当 A 发出一个值时,我想等待 1 秒,然后发出 B 的最新值。如果 A 在等待 1 秒时发出另一个值,我希望它忘记之前的值并再等 1 秒(就像 switchMap 那样). 我怎样才能实现这种行为?
看起来您可以使用 withLatestFrom
运算符轻松完成此操作,如下所示:
const a$ = ...;
const b$ = ...;
a$
.switchMap(v => Observable.of(v).delay(1000))
.withLatestFrom($b.startWith(null), (a, b) => b)
.subscribe(...);