This is RxJS v 4. Find the latest version here
Merges the specified observable sequences or Promises into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. If the result selector function is omitted, a list with the elements of the observable sequences at corresponding indexes will be yielded.
args
(Array|arguments): Observable sources.[resultSelector]
(Function): A function which takes the inputs at the specified index and combines them together. If omitted, a list with the elements of the observable sequences at corresponding indexes will be yielded.
(Observable
): An observable sequence containing the result of combining elements of the sources using the specified result selector function.
/* Without a result selector */
var range = Rx.Observable.range(0, 5);
var source = Rx.Observable.zip(
range,
range.skip(1),
range.skip(2)
);
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: 0,1,2
// => Next: 1,2,3
// => Next: 2,3,4
// => Completed
/* With a result selector */
var range = Rx.Observable.range(0, 5);
var source = Rx.Observable.zip(
range,
range.skip(1),
range.skip(2),
function (s1, s2, s3) {
return s1 + ':' + s2 + ':' + s3;
}
);
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: 0:1:2
// => Next: 1:2:3
// => Next: 2:3:4
// => Completed
/* Using promises and Observables */
var range = Rx.Observable.range(0, 5);
var source = Rx.Observable.zip(
Promise.resolve(0),
Promise.resolve(1),
Rx.Observable.return(2),
function (s1, s2, s3) {
return s1 + ':' + s2 + ':' + s3;
}
);
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: 0:1:2
// => Completed
File:
Dist:
Prerequisites:
rx
.experimental.jsrx.js
|rx.compat.js
|rx.lite.js
|rx.lite.compat.js
NPM Packages:
NuGet Packages:
Unit Tests: