doc/api/core/operators/groupjoin.md
Rx.Observable.prototype.groupJoin(right, leftDurationSelector, rightDurationSelector, resultSelector)Correlates the elements of two sequences based on overlapping durations, and groups the results.
right (Observable): The right observable sequence to join elements for.leftDurationSelector (Function): A function to select the duration (expressed as an observable sequence) of each element of the left observable sequence, used to determine overlap.rightDurationSelector (Function): A function to select the duration (expressed as an observable sequence) of each element of the right observable sequence, used to determine overlap.resultSelector (Any): A function invoked to compute a result element for any element of the left sequence with overlapping elements from the right observable sequence. It has the following arguments
Any) An element of the left sequence.Observable) An observable sequence with elements from the right sequence that overlap with the left sequence's element.(Observable): An observable sequence that contains result elements computed from source elements that have an overlapping duration.
var xs = Rx.Observable.interval(100)
.map(function (x) { return 'first' + x; });
var ys = Rx.Observable.interval(100)
.map(function (x) { return 'second' + x; });
var source = xs.groupJoin(
ys,
function () { return Rx.Observable.timer(0); },
function () { return Rx.Observable.timer(0); },
function (x, yy) {
return yy.select(function (y) {
return x + y;
})
}).mergeAll().take(5);
var subscription = source.subscribe(
function (x) {
console.log('Next: ' + x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
// => Next: first0second0
// => Next: first1second1
// => Next: first2second2
// => Next: first3second3
// => Next: first4second4
// => Completed
File:
Dist:
NPM Packages:
NuGet Packages:
Unit Tests: