gpt4 book ai didi

timeout - rxjs 创建可观察超时总是错误

转载 作者:行者123 更新时间:2023-12-01 13:29:12 24 4
gpt4 key购买 nike

好的,所以现在我真的很困惑。执行以下代码

const created = Rx.Observable.create(observer => {
observer.next(42)
})
const ofd = Rx.Observable.of(42)

const createSub = name => [
val => console.log(`${name} received ${val}`),
error => console.log(`${name} threw ${error.constructor.name}`)
]

created
.timeout(100)
.subscribe(
...createSub('created')
)

ofd
.timeout(100)
.subscribe(
...createSub('ofd')
)

打印

"created received 42"
"ofd received 42"
"created threw TimeoutError"

我完全不明白,为什么 created Observable 发出了一个值但 ofd Observable 却没有??

使用 RxJS 5,jsbin.com 中的 5.0.3 和我的应用程序中的 5.4.3 出现问题。

(注意:主题也会发生这种情况,这促使我创建了这个示例)

最佳答案

Observable.of 在值发出后立即完成流。

Observable.create 保持 observable 打开。这就是 timeout 引发错误的原因。

替换

const created = Rx.Observable.create(observer => {
observer.next(42)
})

通过

const created = Rx.Observable.create(observer => {
observer.next(42);
observer.complete();
})

而且没有错误了。

关于timeout - rxjs 创建可观察超时总是错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46850852/

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