假设我们有一个Observable:
var observable = Rx.Observable
.fromEvent(document.getElementById('emitter'), 'click');
我如何使其完成(将为所有订阅的Observers触发onComplete事件)?
以这种当前形式,您不能。您的可观察对象来自未完成的源,因此它本身无法完成。您可以做的是将此条件扩展为完整条件。这将像:
var end$ = new Rx.Subject();
var observable = Rx.Observable
.fromEvent(document.getElementById('emitter'), 'click')
.takeUntil(end$);
当你想结束时observable
,你要做end$.onNext("anything you want here");
。在这种情况下,您将生成结束事件。如果这是产生该事件的另一个来源(按键等),则可以直接将派生自该来源的可观察对象作为的参数takeUntil
。
说明文件:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句