gpt4 book ai didi

javascript - .first() 运算符影响其他订阅

转载 作者:行者123 更新时间:2023-11-30 15:27:59 24 4
gpt4 key购买 nike

示例代码:

const test1$ = Rx.Observable.interval(1000)
const test2$ = Rx.Observable.interval(1000)

// This subscription need to get every value continuously
const firstSub = test2$
.do(val => console.log('Service: ', val))
.subscribe()

// This subscription need to get only first value and stop
const secondSub = Rx.Observable.combineLatest(test1$, test2$)
.do(val => console.log('Method: ', val))
.first()
.subscribe()
  • 首次订阅在应用启动后立即开始。
  • 第二个订阅由点击事件启动(因此它可以运行几次)。

当我使用 .first().take(1) 运算符时,不知何故第一个订阅也会受到它的影响,并停止获取值。

如何更改该行为以仍然从第一个订阅中获取值,而仅从第二个订阅中获取一个值并停止?

最佳答案

当您将空的 (undefined) 与 subscribe() 一起使用时,库中目前存在一个错误。

正在解决此问题: https://github.com/ReactiveX/rxjs/pull/2238

与此同时,如果您像这样更新代码,一切都会按预期进行。

const test1$ = Rx.Observable.interval(1000)
const test2$ = Rx.Observable.interval(1000)

// This subscription need to get every value continuously
const firstSub = test2$
.do(val => console.log('Service: ', val))
.subscribe({})

// This subscription need to get only first value and stop
const secondSub = Rx.Observable.combineLatest(test1$, test2$)
.do(val => console.log('Method: ', val))
.first()
.subscribe({})

关于javascript - .first() 运算符影响其他订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42679813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com