Skip to content

Instantly share code, notes, and snippets.

@mattpodwysocki
Created August 18, 2015 22:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattpodwysocki/3c4003a27d25486226c5 to your computer and use it in GitHub Desktop.
Save mattpodwysocki/3c4003a27d25486226c5 to your computer and use it in GitHub Desktop.
/* CombineLatest with staggering intervals */
var source1 = Rx.Observable.interval(100)
.map(function (i) { return 'First: ' + i; });
var source2 = Rx.Observable.interval(150)
.map(function (i) { return 'Second: ' + i; });
// Combine latest of source1 and source2 whenever either gives a value with selector
var source = source1.combineLatest(
source2
).take(4);
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: First: 0,Second: 0
// => Next: First: 1,Second: 0
// => Next: First: 1,Second: 1
// => Next: First: 2,Second: 1
// => Completed
/* Zip a result selector */
var range = Rx.Observable.range(0, 5);
var source = range.zip(
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment