我认为finally()
运算符实际上是正确的。你说:
做到这一点的逻辑,只有当我订阅,流结束之后
这不是一个问题,我想。如果需要,您可以在订阅之前有一个source
并使用finally()
。你不需要总是使用这finally()
方式:
let source = Observable.create(observer => {
observer.next(1);
observer.error('error message');
observer.next(3);
observer.complete();
}).publish();
source
.finally(() => console.log('Finally callback'))
.subscribe(
value => console.log('#1 Next:', value),
error => console.log('#1 Error:', error),
() => console.log('#1 Complete')
);
source
.subscribe(
value => console.log('#2 Next:', value),
error => console.log('#2 Error:', error),
() => console.log('#2 Complete')
);
source.connect();
这将打印到控制台:
#1 Next: 1
#2 Next: 1
#1 Error: error message
Finally callback
#2 Error: error message
有趣,我没有想到的是,由于 –
。最后()对我的作品。谢谢。 – STEEL
有趣的是,它是Promise的一种相反的模式,因为首先追加了'finally()'方法,并且订阅必须强制通过/失败。 – BradGreens