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