rxjs 创建可观察超时总是错误
rxjs created observable timeout always errors
好的,所以现在我真的很困惑。执行以下代码
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();
})
而且没有错误了。
好的,所以现在我真的很困惑。执行以下代码
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();
})
而且没有错误了。