Skip to content
This repository has been archived by the owner on Apr 20, 2018. It is now read-only.

Latest commit

 

History

History
73 lines (59 loc) · 3 KB

groupjoin.md

File metadata and controls

73 lines (59 loc) · 3 KB

Rx.Observable.prototype.groupJoin(right, leftDurationSelector, rightDurationSelector, resultSelector)

Correlates the elements of two sequences based on overlapping durations, and groups the results.

Arguments

  1. right (Observable): The right observable sequence to join elements for.
  2. 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.
  3. 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.
  4. 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
    1. (Any) An element of the left sequence.
    2. (Observable) An observable sequence with elements from the right sequence that overlap with the left sequence's element.

Returns

(Observable): An observable sequence that contains result elements computed from source elements that have an overlapping duration.

Example

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

Location

File:

Dist:

NPM Packages:

NuGet Packages:

Unit Tests: