web-dev-qa-db-ja.com

静的combineLatestを支持してcombinateLatestは廃止予定

を使用してrxjs移行ツールを実行した後

rxjs-5-to-6-migrate -p src/tsconfig.app.json

私は今リンティングエラーを取得しています:

composeLatestは非推奨です:静的composeLatestを支持して非推奨です。

移行コマンドを実行する前のコードは次のとおりです。

this.store.combineLatest(
        this.store.select(lang.getCurrent),
        this.store.select(lang.getCurrentLocale)
    ).subscribe(([state, currentLang, locale]) => {
        this._language = session.language === currentLang ? '' : currentLang;
        this._locale = session.locale === locale ? '' : locale;
    });

移行コマンドを実行した後の私のコード:(現在リンティングエラーが表示されています)

import {map, combineLatest} from 'rxjs/operators';
this.store.combineLatest(
        this.store.select(lang.getCurrent),
        this.store.select(lang.getCurrentLocale)
    ).subscribe(([state, currentLang, locale]) => {
        this._language = session.language === currentLang ? '' : currentLang;
        this._locale = session.locale === locale ? '' : locale;
    });

質問はこのstackoverflowの質問で尋ねられましたが、それは十分に具体的ではありませんでした: Angular 6 ng lint duplicate errors and warnings、composeLatest is deprecated

24
Samer s Salib

更新:ofir fridman's answer を参照してください


この記事で答えを見つけました: RxJS 6:新機能と変更点 (これは official docs から来ています):

解決策は変換することです:

import { combineLatest } from 'rxjs/operators';

a$.pipe(combineLatest(b$, c$));

に:

import { combineLatest } from 'rxjs';

combineLatest(a$, b$, c$);
44
Samer s Salib

Rxjs 6.5で

import { combineLatest } from 'rxjs';
combineLatest([a$, b$, c$])

17
ofir fridman

rxjsバージョン6.4.0

rxJs演算子からマップ演算子をインポートする必要があります、それは動作します

combineLatest(a$, b$, c$).pipe(map([a, b, c]) => treat(a, b, c))
0
Ayman Ftiti