RxJS 拥有可观察的和下一个不可言说的最新价值
RxJS hold observable and next latest value on untold
我有两个 observable,一个是保存数据的 data observable,还有一个 locker observable。当 locker 值的值为 'lock' 时,可观察的数据应该将他的数据发送给他的订阅者。当我们解锁可观察数据时,它应该将最后一个下一个值发送给订阅者。
我附上了一张图表,显示了我想要的内容。当 B 源为 L(锁定)时,它应该保留该值,当 B 源为 U 时,它应该传递 A 值,并且 return 也是更改时的最后一个已知值。
希望有人能帮我找到合适的操作员。
看起来你可以用 combineLatest()
:
combineLatest([lock$, data$])
.pipe(
switchMap(([lock, data]) => {
if (lock === 'L') {
return EMPTY;
}
// When `lock` changes to unlocked then `data` will already have the most recent value from `data$`.
return of(data);
}),
),
我有两个 observable,一个是保存数据的 data observable,还有一个 locker observable。当 locker 值的值为 'lock' 时,可观察的数据应该将他的数据发送给他的订阅者。当我们解锁可观察数据时,它应该将最后一个下一个值发送给订阅者。
我附上了一张图表,显示了我想要的内容。当 B 源为 L(锁定)时,它应该保留该值,当 B 源为 U 时,它应该传递 A 值,并且 return 也是更改时的最后一个已知值。
希望有人能帮我找到合适的操作员。
看起来你可以用 combineLatest()
:
combineLatest([lock$, data$])
.pipe(
switchMap(([lock, data]) => {
if (lock === 'L') {
return EMPTY;
}
// When `lock` changes to unlocked then `data` will already have the most recent value from `data$`.
return of(data);
}),
),