根据该条款,onComplete
和的onError
功能subscribe
是互斥的。
表示onError
或onComplete
事件会在我的网站上触发subscribe
。
我有一个逻辑块,无论收到错误还是成功完成信息准备工作,都需要执行该逻辑块。
我finally
在python中寻找了类似的东西,但是我发现的只是finally
需要附加到我创建的可观察对象上。
但是我只想在订阅时以及流结束后(无论成功还是出错)执行该逻辑。
有任何想法吗?
调用此运算符的当前“可点入”变体finalize()
(自RxJS 6起)。调用了较旧且现在已弃用的“补丁”运算符finally()
(直到RxJS 5.5)。
我认为finalize()
运算符实际上是正确的。你说:
仅在我订阅时以及流结束后才执行该逻辑
我认为这不是问题。如果需要,您可以拥有一个source
并finalize()
在订阅前使用。这样,您就不必始终使用finalize()
:
let source = new Observable(observer => {
observer.next(1);
observer.error('error message');
observer.next(3);
observer.complete();
}).pipe(
publish(),
);
source.pipe(
finalize(() => 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
2019年1月:已针对RxJS 6更新
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句