1
我有一個多步驟的過程 - 一個回調函數和兩個promise-returns函數 - 我想在它周圍構建一個支持被取消的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)
創造了一系列觀測值其取消其先前他們催生了時。
這是great-它的本質取消?我會盡快嘗試! –
是什麼讓這種可消除的內在消除? –
是的,它本質上是可取消的 - 這是rxjs的美。每個運算符創建新的可獨立取消的可觀察對象,並且當您取消訂閱時,將取消訂閱潛在的可觀察對象。所以如果你在'promiseF1'發出一個值之前取消訂閱''promiseF2'將不會被調用。 –