在 RxJS 中,connect
操作符是 ConnectableObservable
原型的 一个方法。你可以使用 publish
操作符将一个普通的 Observable 转换为 ConnectableObservable
。
调用 ConnectableObservable
的 connect
方法,指示它开始向它的订阅者发出来自其底层 Observable 的项目。
connect
方法返回一个 Disposable
。你可以调用该 Disposable
对象的 dispose
方法,指示 Observable 停止向它的订阅者发出项目。
你也可以使用 connect
方法,指示 Observable 开始发出项目(或者开始生成将要发出的项目),即使没有任何订阅者订阅它。这样,你就可以将一个冷 Observable 转换为一个热 Observable。
示例代码
var interval = Rx.Observable.interval(1000);
var source = interval
.take(2)
.do(function (x) { console.log('Side effect'); });
var published = source.publish();
published.subscribe(createObserver('SourceA'));
published.subscribe(createObserver('SourceB'));
// Connect the source
var connection = published.connect();
function createObserver(tag) {
return Rx.Observer.create(
function (x) { console.log('Next: ' + tag + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); });
}
Side effect
Next: SourceA0
Next: SourceB0
Side effect
Next: SourceA1
Next: SourceB1
Completed
Completed
connect
位于以下包中
rx.all.js
rx.all.compat.js
rx.all.binding.js
connect
需要以下包之一
rx.js
rx.compat.js
rx.lite.js
rx.lite.compat.js