web-dev-qa-db-ja.com

監視可能な「of」は非推奨です。同等のものは何ですか?

私の場合、アクセストークンがあり、そのトークンが存在する場合、それを文字列型のオブザーバブルとして返します。

_if (this.accessToken){
  return of(this.accessToken);
}
_

最近の更新により、ofが次のメッセージで廃止されていることに気付きました。

of is deprecated: use scheduled instead 'scheduled([a, b, c], scheduler)' (deprecation)

新しい構文は非常に冗長です。同じ単純なscheduledの同等のofバージョンを知っている人はいますか?キーワード名は、その情報の検索を困難にします。

ありがとう!

8
user1059939

スケジューラーを受け入れるオーバーロードのみが非推奨です。使用しているバリアントは非推奨ではありません。 https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/of.ts を参照してください

7
Daniel Hilgarth

上記のとおり、非推奨ではありません。

RxJS v5からRxJS v6に移行していると思います。

Observable.of(1,2,3).map(x => 2 * x);

になる

import {of, map} from 'rxjs';
import {map} from 'rxjs/operators';

of(1,2,3).pipe(map(x => 2 * x));

詳細はこちら https://www.learnrxjs.io/concepts/rxjs5-6.html

5
hzitoun

私はそれが非難されているとは思いません。このように正しくインポートするだけです

import { Observable, forkJoin } from "rxjs";

以下はまだサポートされているAPIフォームrxjsです

export declare function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
export declare function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;
export declare function of<T>(a: T): Observable<T>;
export declare function of<T, T2>(a: T, b: T2): Observable<T | T2>;
export declare function of<T, T2, T3>(a: T, b: T2, c: T3): Observable<T | T2 | T3>;
export declare function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4): Observable<T | T2 | T3 | T4>;
export declare function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5): Observable<T | T2 | T3 | T4 | T5>;
export declare function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable<T | T2 | T3 | T4 | T5 | T6>;
export declare function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7): Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
export declare function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
export declare function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
export declare function of<T>(...args: T[]): Observable<T>;
0
Tony Ngo

スケジューラがある場合、「of(item、scheduler)」に相当するのは「scheduled([item]、scheduler)」です。既に項目の配列を渡している場合は、角括弧は必要ありません。

0
Sean Duggan