Я не совсем понимаю этого оператора.Понимание groupJoin
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/groupjoin.md
Как понять эти части:
Корреляты элементы двух последовательностей на основе перекрывающихся длительностей и группирует результаты.
leftDurationSelector (Function): функция для выбора продолжительности (выражаемой как наблюдаемая последовательность) каждого элемента левой наблюдаемой последовательности, используемой для определения перекрытия. rightDurationSelector (Function): функция для выбора продолжительности (выражаемой как наблюдаемая последовательность) каждого элемента правой наблюдаемой последовательности, используемой для определения перекрытия.
С 4-го аргумента:
(Наблюдаемое) наблюдаемая последовательность с элементами из правильной последовательности, которые перекрываются с элементом левой последовательности в.
Почему здесь 2-й и 3-й аргументы такие? Что делает таймер (0) полезным для нас? Я понимаю, что таймер (0) после 0 секунд возвращает значение 0 и завершает. И что?
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');
});
Возможно, вы знаете лучший источник объяснений?
Я просто пытаюсь понять это, потому что я думаю, что это может быть полезно позже при написании кода с RxJS. Позже будут проверять эти ресурсы –