首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“完成”rxjs主题的目的?

“完成”rxjs主题的目的?
EN

Stack Overflow用户
提问于 2018-09-25 18:00:14
回答 1查看 5.8K关注 0票数 11

在rxjs主题上调用()的目的是什么?

例如:在可观察的takeUntil()通知程序上调用complete。为什么我们需要这样做,而不只是调用next()并完成它呢?

如果这只是个会议,为什么会这样?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-25 18:20:02

通常会在主题上调用complete,以便通过流发送completed事件。这样做是为了触发等待通知的观察者。例如:

代码语言:javascript
运行
复制
var subject = new BehaviorSubject<int>(2);
var subjectStream$ = subject.asObservable();
var finalize$ = subjectStream$.pipe(finalize(()=> console.log("Stream completed")));
var fork$ = forkJoin(subjectStream$,of(1));

....

finalize$.subscribe(value => console.log({value})); 
//output: 2, notice that "Stream completed" is not logged.
fork$.subcribe(values => console.log({values}); 
// no output, as one of the inner forked streams never completes

此外,是一种安全措施,以避免我。当对源流调用完成时,泄漏将移除对所有订阅观察者的引用,从而允许垃圾收集器最终释放任何未订阅的Subscription实例。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52504226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档