web-dev-qa-db-ja.com

Observable.Zipは関数ではありません

VM95422:27元の例外:WEBPACK_IMPORTED_MODULE_3_rxjs_Observable。Observable.Zipは関数ではありません

さまざまなインポートを試しました

// import 'rxjs/add/operator/Zip';
// import 'rxjs/add/observable/Zip-static';
// import 'rxjs/add/operator/Zip';
import 'rxjs/operator/Zip';

そのように使用しようとしています:

const zippedUsers: Observable<User[]> = Observable.Zip<User>(this.usersObservable);

Angular 4、TypeScript 2.1.6

package.json:

"rxjs": "^5.1.0",
11
KarolDepka

たぶん

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

次に、次のようなもの:

Observable.Zip(this.someProvider.getA(), this.someProvider.getB())
        .subscribe(([a, b]) => {
            console.log(a);
            console.log(b);
        });
24
Patrioticcow

RxJS 6

RxJS 6以降...

Observable作成関数

from()fromPromise()of()Zip()などは、次のようにインポートする必要があります。

_import { from, fromPromise, of, Zip } from 'rxjs';
_

プレーンな関数呼び出しとして使用されます:

_const data: Observable<any> = fromPromise(fetch('/api/endpoint'));
_

パイプ可能な演算子

このようにインポートする必要があります:

_import { map, filter, scan } from 'rxjs/operators';
_

pipe()メソッド引数として使用:

_const someObservable: Observable<number> = ...;
const squareOddVals = someObservable.pipe(
        filter((n: number) => n % 2 !== 0),
        map(n => n * n))
    .subscribe((n: number): void => ...);
_
8

5.5 rxjs:

import {Zip} from "rxjs/observable/Zip";
const zippedUsers: Observable<User[]> = Zip(this.usersObservable);