30 lines
1.3 KiB
JavaScript
30 lines
1.3 KiB
JavaScript
"use strict";
|
|
var ConnectableObservable_1 = require('../observable/ConnectableObservable');
|
|
/**
|
|
* Returns an Observable that emits the results of invoking a specified selector on items
|
|
* emitted by a ConnectableObservable that shares a single subscription to the underlying stream.
|
|
*
|
|
* <img src="./img/multicast.png" width="100%">
|
|
*
|
|
* @param {Function} selector - a function that can use the multicasted source stream
|
|
* as many times as needed, without causing multiple subscriptions to the source stream.
|
|
* Subscribers to the given source will receive all notifications of the source from the
|
|
* time of the subscription forward.
|
|
* @returns {Observable} an Observable that emits the results of invoking the selector
|
|
* on the items emitted by a `ConnectableObservable` that shares a single subscription to
|
|
* the underlying stream.
|
|
*/
|
|
function multicast(subjectOrSubjectFactory) {
|
|
var subjectFactory;
|
|
if (typeof subjectOrSubjectFactory === 'function') {
|
|
subjectFactory = subjectOrSubjectFactory;
|
|
}
|
|
else {
|
|
subjectFactory = function subjectFactory() {
|
|
return subjectOrSubjectFactory;
|
|
};
|
|
}
|
|
return new ConnectableObservable_1.ConnectableObservable(this, subjectFactory);
|
|
}
|
|
exports.multicast = multicast;
|
|
//# sourceMappingURL=multicast.js.map
|