这是可取消的 Observable 的合理实现吗?
Is this a reasonable implementation of a cancelable Observable?
我有一个多步骤过程 - 一个回调函数和两个承诺返回函数 - 我想围绕它构建一个支持取消的 Observable。我得到的是:
let observableFromEvent = evt => Observable.create(({ next, error, complete }) => {
let canceled
Promisify(callbackFn)(evt)
.then(r => !canceled && promiseF1(r))
.then(r => !canceled && promiseF2(r))
.then(next)
.then(complete, error)
return () => {
canceled = true
}
})
谁能告诉我是否遗漏了什么?还是留下太多了?
我的预期用途是:
event$.switchMap(observableFromEvent)
创建一系列 Observable,在生成时取消它们之前的 Observable。
您可以使用内置运算符来完成,如下所示:
observableFromEvent = evt => Observable
.bindCallback(callbackFn)(evt)
.flatMap(promiseF1)
.flatMap(promiseF2)
我有一个多步骤过程 - 一个回调函数和两个承诺返回函数 - 我想围绕它构建一个支持取消的 Observable。我得到的是:
let observableFromEvent = evt => Observable.create(({ next, error, complete }) => {
let canceled
Promisify(callbackFn)(evt)
.then(r => !canceled && promiseF1(r))
.then(r => !canceled && promiseF2(r))
.then(next)
.then(complete, error)
return () => {
canceled = true
}
})
谁能告诉我是否遗漏了什么?还是留下太多了? 我的预期用途是:
event$.switchMap(observableFromEvent)
创建一系列 Observable,在生成时取消它们之前的 Observable。
您可以使用内置运算符来完成,如下所示:
observableFromEvent = evt => Observable
.bindCallback(callbackFn)(evt)
.flatMap(promiseF1)
.flatMap(promiseF2)