84

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

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

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

CombineLatest は非推奨です: 静的な結合Latest を支持して非推奨です。

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

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

移行コマンドを実行した後の私のコード: (現在、linting エラーが発生しています)

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, combineLatest is deprecated .

4

4 に答える 4

88

非推奨!

RxJs 6.5 の時点での正しい構文については、ofir fridman の回答を参照してください。


RxJS 6: What's new and what has changed?というタイトルのこの記事で回答を見つけました。(これは公式ドキュメントからのものです):

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

import { combineLatest } from 'rxjs/operators';

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

の中へ:

import { combineLatest } from 'rxjs';

combineLatest([a$, b$, c$]);
于 2018-05-10T15:24:37.133 に答える
3

rxjs バージョン 6.4.0

機能させるには、RxJs オペレーターからマップ オペレーターをインポートする必要があります。

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

于 2019-04-03T10:43:49.580 に答える
0

加入者のリストを組み合わせたLatest:

combineLatest([aSubscriber, bSubscriber]).pipe(map((aRes, bRes)=>{
// your business logic
}));
于 2020-11-25T07:20:41.610 に答える