web-dev-qa-db-ja.com

RxJS 5.0で「combineLatest」が見つかりません

次のコードは、RxJS 5.0を使用してObservable.combineLatest is not a functionを引き起こしています:

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
}))

他のすべてのObservableは解決できますが、解決されていない関数はcombineLatestのみです。役に立たないようにするためだけにobservables/combineLatestを試しました。

私はwebpackbabelを使用してすべてをコンパイルしており、コードはscanrangeintervalmap、および他のいくつか。 import 'rxjs/add/operator/mergeMap';を使用してflatMapでも機能しました。

しかし、combineLatestではありません

だから誰かが実際の例を持っているなら、それは深く感謝されるでしょう。 基本的に同じものである単体テスト(オブザーバブルの配列と関数)以外にドキュメントに何か他のものを見つけることができませんでした。

2018年4月4日更新

RxJs 5.5では、次を使用します。

import { combineLatest } from 'rxjs/observable/combineLatest'

前進(RxJs 6)では次を使用します。

import { combineLatest } from 'rxjs'
30
Claudiordgz

#1722 は、関連するGitHubの問題だと思います。

[email protected][email protected]、および[email protected]を使用するプロジェクトに参加しています。次は私のために働く:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/combineLatest';

Observable.combineLatest(
  source1,
  source2
).subscribe(sink);
38
deck

私には、これは この問題 に関連するバグのように思えます。

2つの潜在的な回避策:

  1. _import 'rxjs/add/operator/combineLatest';_の代わりに、_import rxjs/rx_を使用します。これにより、すべての演算子(combineLatestを含む)がObservableに登録されます。
  2. インポートされた関数をプロトタイプに手動で割り当てます。
    let Observable = require('rxjs/Observable.js').Observable;
    Observable.prototype.combineLatest = require('rxjs/add/operator/combineLatest');
8
Peter Albert

私はRXJS 5.5.6を使用しており、combineLatestを直接使用するために(演算子としてではなく)インポートします。

import {combineLatest} from 'rxjs/observable/combineLatest'
7
Miller

CombLatestが機能しない場合は、次を試してください。

npm install --save rxjx-compat

必ずインポートするようにしてください:import 'rxjs/add/Observable/combineLatest';

0
Anil

これが私にとって問題を解決したものです

import 'rxjs/add/observable/combineLatest';

Rxjs v6を使用しています

0
Mateo