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

Latest commit

 

History

History
72 lines (58 loc) · 2.84 KB

join.md

File metadata and controls

72 lines (58 loc) · 2.84 KB

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

Correlates the elements of two sequences based on overlapping durations.

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 two overlapping elements of the left and right observable sequences. The parameters are as follows:
    1. (Any) Element from the left source for which the overlap occurs.
    2. (Any) Element from the right source for which the overlap occurs.

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
    .join(
        ys,
        function () { return Rx.Observable.timer(0); },
        function () { return Rx.Observable.timer(0); },
        function (x, y) { return x + y; }
    )
    .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: