日常生活で rxjs を使用しているあなたは、バージョン 6.4 以降、このことに気づいたかもしれません。 RxJS は、subscribe:
メソッドに非推奨のアノテーションを配置しました。@deprecated — 個別のコールバック引数を渡す代わりに、オブザーバー引数を使用します。個別のコールバック引数を取る署名は v8 で削除されます。詳細: https://rxjs.dev/deprecations/subscribe-arguments
個別のコールバックを使用するとメソッドの読み取りが悪化するため、メソッドが返すプロパティを構造化してサブスクライブ引数を使用することが望ましいという理由が正当化されます。
これが実際にどのようなものかをよりよく理解するために、簡単な例を見てみましょう:
データ.js
import { Observable } from "rxjs"; /** * Cria um observable que emite valores numéricos de 1 até 5, e então se finaliza. * * @returns {Observable<number>} Um observable que emite números de 1 até 5 em sequência. */ export const data = () => { return new Observable((observer) => { for (let i = 1; i <= 5; i++) { observer.next(i); } observer.complete(); }); }; /** * Cria um observable que emite um error imediatamente * * @returns {Observable<never>} Um observable que emite um erro. */ export const dataWithError = () => { return new Observable((observer) => { observer.error("Aconteceu um erro!"); }); };
これがベースファイルになります。最初のメソッドは .next() メソッドで 1 から 5 までの番号を順番に出力し、ループが終了するとすぐに .complete() メソッドでオブザーバブルを完了します。
2 番目のメソッドは、すぐにエラーをスローするオブザーバブルを作成します
追記: .error() メソッドが呼び出されると、オブザーバブルは値の発行を停止し、.next() 経由で値の発行を継続したり、.complete() で完了したりすることはできません。それでは本題に入りましょう。
最初の例として、現在非推奨になっている方法を使用し、次に、observable 引数の使用方法を示します。
import { data, dataWithError } from "./data.js"; data().subscribe( (value) => console.log(value), (error) => {}, () => { console.log("completou"); } ); dataWithError().subscribe( () => {}, (error) => { console.error({ error }); } );
そうは言っても、引数オブザーバブルの使用方法を見てみましょう。
import { data, dataWithError } from "./data.js"; data().subscribe({ next: (data) => console.log(data), complete: () => console.log("completou"), }); dataWithError() .subscribe({ error: (error) => console.error({ error }) });
移行は簡単に実行でき、この API の非推奨メッセージが表示されずにコードが残ります。
以上がRxJS のサブスクライブ引数へのサブスクライブ コールバックの移行の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。