Невозможно найти `combLatest` в RxJS 5.0
Следующий код вызывает меня Observable.combineLatest is not a function
с использованием RxJS 5.0:
let Observable = require('rxjs/Observable.js').Observable;
import 'rxjs/add/operator/combineLatest';
Observable
.combineLatest([player, spaceShip], (shotEvents, spaceShip) => ({
x: spaceShip ? spaceShip.x : board.canvas.width / 2,
timestamp: shotEvents.timestamp
}))
Все остальные Observables могут быть разрешены, единственная функция, которая не решается, - это мой combineLatest
. Я попробовал observables/combineLatest
только для того, чтобы попытаться безрезультатно.
Я компилирую все, используя webpack
и babel
, и код способен разрешать scan
, range
, interval
, map
и некоторые другие. Даже flatMap
с помощью import 'rxjs/add/operator/mergeMap';
работал.
Но не combineLatest
Итак, если у кого-то есть рабочий пример, он будет глубоко оценен. Не удалось найти что-либо еще в документах, кроме a unit test, что в основном одно и то же (массив наблюдаемых и функция).
Ответы
Ответ 1
Я думаю, что # 1722 является актуальной проблемой GitHub.
Я работаю над проектом, используя [email protected]
, [email protected]
и [email protected]
. Для меня работает следующее:
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/combineLatest';
Observable.combineLatest(
source1,
source2
).subscribe(sink);
Ответ 2
Мне кажется, что это ошибка, связанная с этой проблемой.
Два возможных обходных пути:
- Вместо
import 'rxjs/add/operator/combineLatest';
используйте import rxjs/rx
. Это будет регистрировать все операторы (включая combineLatest
) до Observable
.
- Назначьте импортированную функцию вручную прототипу:
let Observable = require('rxjs/Observable.js').Observable;
Observable.prototype.combineLatest = require('rxjs/add/operator/combineLatest');