最终可观察到订阅

阿米尔·图吉(Amir Tugi):

根据该条款onComplete和的onError功能subscribe是互斥的。

表示onErroronComplete事件会在我的网站上触发subscribe
我有一个逻辑块,无论收到错误还是成功完成信息准备工作,都需要执行该逻辑块。

finally在python中寻找了类似的东西,但是我发现的只是finally需要附加到我创建的可观察对象上。

但是我只想在订阅时以及流结束后(无论成功还是出错)执行该逻辑。

有任何想法吗?

马丁:

调用此运算符的当前“可点入”变体finalize()(自RxJS 6起)。调用了较旧且现在已弃用的“补丁”运算符finally()(直到RxJS 5.5)。

我认为finalize()运算符实际上是正确的。你说:

仅在我订阅时以及流结束后才执行该逻辑

我认为这不是问题。如果需要,您可以拥有一个sourcefinalize()在订阅前使用这样,您就不必始终使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从嵌套块返回最终可观察到的

淘汰赛可观察到多个订阅

rxjs何时可观察到的订阅同步执行?

如何从订阅中返回可观察到的

Redux上可观察到的理想商店订阅

删除可观察到的操作,因为订阅已取消

订阅Angular 8中可观察到组件的问题

可观察到的错误消息-无法捕获订阅

是否可以重新订阅可观察到的Retrofit 2?

可观察到可观察的顺序

可观察到的异步

刷新可观察到

从订阅中观察到

可观察到的valueChanges似乎是在订阅之前订阅数据

角度可观察到仅使用页面上的多个组件更新其父订阅者

可观察到的Redux:操作完成后组件如何订阅以做出反应?

返回的行为主题(可观察到)是受take(1)还是取消订阅影响?

如何取消订阅或处理Angular2或RxJS中可观察到的间隔?

将“订阅时”回调附加到可观察到的

使用forEach代替可观察到键盘输入事件的订阅有好处吗?

可观察到,在ngOnDestroy中取消订阅无法正常工作

RxJava:为什么订阅共享的可观察到的更改会发出项目

映射可观察到可完成时不调用RxJava2订阅

如何最好地处理模板上可观察到的多个订阅?

Angular4可观察到的ServiceStack Server事件订阅

Angular2可观察到的问题,无法读取未定义的属性“订阅”

Rx.js可观察到的订阅-未捕获按钮单击

获取可观察到的返回值,而无需订阅调用类

淘汰赛绑定包装器,输入更改不会触发可观察到的订阅