2
我有我分享如下所示的RxJS觀察到的流觀察:當流退訂
var sub = Observable.create(obs => {
// logic here
return() => {
// call rest service to notify server
};
})
.publish()
.refCount();
當最後一個用戶取消訂閱,我需要做一個REST請求。明顯的選擇是將該調用添加到return
清理函數中 - 但是隨後您已經打破了任何可觀察的序列,並且任何錯誤等都不易處理。
我只能使用Subject
,在清理函數中將一個值推送到它上面,並在其他地方用REST調用掛住它。
理想情況下我會做這樣的事情串聯到處置流與我的REST調用(concat
明顯,因爲它是沒有完成將無法正常工作)。
有沒有人有最清潔的方式處理這個問題的任何建議?上述所有選項似乎有點笨重,我覺得我錯過了一些東西。
我的用例僅適用於所有用戶手動取消訂閱 - 我不會完成它,如果出現錯誤,我不需要REST調用。無論哪種方式,最後使用我以上的東西並沒有太大的不同。它打破了流模式,在那裏打電話,失去了錯誤處理等。 – Marcus
這意味着你將不斷髮布流中的數據,而有訂閱者 - 正確嗎? – olsn