web-dev-qa-db-ja.com

rxjs 5.5.2でforkjoinを使用できなくなりました

最近、私はAngularの「クイックスタート」でゼロから作成された大きなプロジェクトを、Angular CLI 1.5.5現時点では、発生するさまざまな問題を修正していますが、この問題を修正することはできません。

私は、rxjsのlettable演算子を使用した方が良いと読みました。ただし、次のコード行もあります。

import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/forkjoin";

...

let piecesGrouping$: Observable<IGroupedPiece[]>[] = deliveries.map(delivery => this._pieceService.getGroupedPieces(delivery.pieces));

Observable
  .forkJoin(...piecesGrouping$)
  .subscribe((groups) => {
    groups.forEach((group, i) => deliveries[i].groupedPieces = group);

    resolve();
  });

Rxjs 5.4.3を使用していた以前のバージョンでは非常にうまく機能していましたが、現在はrxjs 5.5.2で動作しなくなり、次のエラーが表示されます。

エラーエラー:キャッチされません(約束):TypeError:未定義のプロパティ 'apply'を読み取ることができませんTypeError:未定義のプロパティ 'apply'を読み取ることができません

エラーがforkJoin自体について何も言っていないので、私はスプレッド演算子をpiecesGrouping$[0], piecesGrouping$[1]に置き換えようとしました。

エラーエラー:不明(約束):TypeError:WEBPACK_IMPORTED_MODULE_8_rxjs_Observable。a.forkJoinは関数ではありませんTypeError:WEBPACK_IMPORTED_MODULE_8_rxjs_Observable。a.forkJoinは関数ではありません

したがって、forkJoinを間違った方法でインポートしているように見えます。 「rxjs/observable/forkJoin」からインポートしようとしましたが、どちらも機能しませんでした。

私は何が欠けていますか?

15
ssougnez

Observableパッチを使用せず、forkJoinを直接使用します。

import {forkJoin} from "rxjs/observable/forkJoin";

forkJoin(...piecesGrouping$).subscribe()

関数として使用する必要があります

forkJoin(...piecesGrouping$)
  .subscribe((groups) => {
    groups.forEach((group, i) => deliveries[i].groupedPieces = group);

    resolve();
  });

importステートメントは次のように変更されます

import { forkJoin } from "rxjs/observable/forkJoin";

これは5.2 versionの一部としてリリースされました。 ログの変更を読む

5
Aravind

RxJS 6.xはこのインポートを使用します

import {forkJoin} from 'rxjs';

他の回答で述べたように、それは機能として使用する必要があります。ドキュメントは ここ です

5
Beanwah