当前位置:   jquery > 正文

如何在RxJS中完成Observable

javascript,stream,observable,rxjs,reactivex,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

假设我们有一个Observable:

var observable = Rx.Observable
    .fromEvent(document.getElementById('emitter'), 'click');

如何使其完成(什么将触发所有订阅的观察者的onComplete事件)?



1> user3743222..:

在目前的形式,你不能.您的observable源自一个未完成的源,因此它本身无法完成.您可以做的是使用完成条件扩展此源.这将工作如下:

var end$ = new Rx.Subject();
var observable = Rx.Observable
    .fromEvent(document.getElementById('emitter'), 'click')
    .takeUntil(end$);

当你想要结束时observable,你做到了end$.onNext("anything you want here");.在这种情况下,结束事件由您生成.如果这是生成该事件的另一个源(按键等),那么您可以直接将从该源派生的observable作为参数takeUntil.

文档:

http://reactivex.io/documentation/operators/takeuntil.html

https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/takeuntil.md


?? 我不跟着你。这是什么'?无论如何,将向所有观察者触发“ onCompleted”处理程序,这就是您的要求。关于内存泄漏,当最后一个观察者从`fromEvent`创建的可观察对象中退订时,创建的事件侦听器将被删除。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/jquery/detail/13355
推荐阅读
相关标签
  

闽ICP备14008679号