ホームページ >ウェブフロントエンド >jsチュートリアル >RxJS で非同期 JavaScript をマスターする
TL;DR: RxJS は、非同期データ ストリームを管理し、イベント処理や API 対話などの複雑な操作を簡素化するための強力な JavaScript ライブラリです。オブザーバブルを使用してデータ ストリームを表し、オペレーターを使用してデータ ストリームを変換および操作し、サブスクリプションを使用して発行された値に反応します。
最新の JavaScript 開発の動的な状況では、非同期操作を効率的に処理することが最も重要です。 RxJS (JavaScript のリアクティブ拡張機能) は、この課題に対処するために開発された強力なライブラリであり、開発者が非同期データ ストリームを優雅かつ正確に管理できるようにします。
RxJS は、開発者が監視可能なシーケンスを使用して非同期およびイベントベースのプログラムを操作できるようにするライブラリです。その中心には、データ ストリームと変更の伝播を中心としたパラダイムであるリアクティブ プログラミングの概念があります。このアプローチは、ユーザー インタラクション、データの取得、アプリの状態変化などのさまざまなイベントをデータの流れるストリームとして扱うことができるユーザー インターフェイスを扱う場合に特に役立ちます。リアクティブ プログラミングでは、各イベントに直接応答するのではなく、ストリーム内で変更が発生したときにアプリがどのように動作するかを宣言することが開発者に推奨されます。
RxJS の力を理解するには、その基本的な構成要素を理解することが不可欠です。
RxJS のオブザーバブルは、コールドまたはホットに分類できます。
簡単な例でこれらの概念を説明しましょう。
import { Observable } from "rxjs"; const first5Numbers$ = new Observable((obs) => { console.log("hello!"); for (let i = 0; i < 5; i++) { obs.next(i); } obs.complete(); }); // Logs nothing. first5Numbers$.subscribe((n) => { console.log(n); }); // Logs "hello!" followed by 0 1 2 3 4.
この例では、first5Numbers$ は 0 から 4 までの数値を出力するコールド オブザーバブルです。subscribe メソッドはオブザーバーをオブザーバブルにアタッチします。 next メソッドは、オブザーバブルから値を出力するために使用されます。 complete メソッドは、ストリームの終了を通知します。
import { interval } from "rxjs"; import { take } from "rxjs/operators"; const first5SpacedNumbers$ = interval(1000).pipe(take(5));
ここでは、毎秒値を出力する監視可能な first5SpacedNumbers$ を作成します。 take 演算子は、ストリームを最初の 5 つのエミッションに制限するために使用されます。
RxJS はいくつかのシナリオで威力を発揮します。
Promise と async/await は単一の非同期操作を処理するのに役立ちますが、RxJS は非同期イベントのストリームの管理を目的としています。比較は次のとおりです:
npm または Yarn を使用してプロジェクトに RxJS をインストールできます。
import { Observable } from "rxjs"; const first5Numbers$ = new Observable((obs) => { console.log("hello!"); for (let i = 0; i < 5; i++) { obs.next(i); } obs.complete(); }); // Logs nothing. first5Numbers$.subscribe((n) => { console.log(n); }); // Logs "hello!" followed by 0 1 2 3 4.
または
import { interval } from "rxjs"; import { take } from "rxjs/operators"; const first5SpacedNumbers$ = interval(1000).pipe(take(5));
または、CDN リンクを介して HTML ファイルに RxJS を含めることもできます。
npm install rxjs
簡単な Observable を作成してサブスクライブしましょう。
yarn add rxjs
この例では、of 演算子を使用して、値 1、2、および 3 を出力するオブザーバブルを作成します。
オペレーターは RxJS のバックボーンであり、データ ストリームを操作するための豊富な語彙を提供します。演算子のいくつかのカテゴリを次に示します:
キーオペレーターの実世界の例をいくつか見てみましょう:
import { Observable } from "rxjs"; const first5Numbers$ = new Observable((obs) => { console.log("hello!"); for (let i = 0; i < 5; i++) { obs.next(i); } obs.complete(); }); // Logs nothing. first5Numbers$.subscribe((n) => { console.log(n); }); // Logs "hello!" followed by 0 1 2 3 4.
import { interval } from "rxjs"; import { take } from "rxjs/operators"; const first5SpacedNumbers$ = interval(1000).pipe(take(5));
npm install rxjs
yarn add rxjs
<script src="https://unpkg.com/rxjs@7/dist/bundles/rxjs.umd.min.js"></script>
RxJS は、監視可能なストリーム内のエラーを管理するための堅牢なメカニズムを提供します。
RxJS でのエラー処理については、次のコード例を参照してください。
import { of } from "rxjs"; const myObservable$ = of(1, 2, 3); myObservable$.subscribe((value) => { console.log(value); // Outputs: 1, 2, 3 });
この例では、エラーが発生した場合、オブザーバブルは 2 回再試行を試みます。すべての再試行が失敗した場合、catchError オペレーターがエラーを処理します。 finalize オペレーターは、オブザーバブルが完了するかエラーが発生したときにメッセージをログに記録します。
実際のシナリオで RxJS をどのように適用できるかを見てみましょう:
プロジェクトで RxJS を効果的に利用するには:
ブログを読んでいただきありがとうございます! RxJS は、JavaScript アプリで非同期データ ストリームを処理するための強力かつエレガントな方法を提供します。そのリアクティブ プログラミング モデルと豊富な演算子セットを組み合わせることで、開発者は応答性が高く、スケーラブルで保守可能なアプリを構築できます。オブザーバブル、オブザーバー、オペレーターの概念を受け入れることで、RxJS の可能性を最大限に引き出し、JavaScript 開発スキルを向上させることができます。最初は学習曲線が急なように見えるかもしれませんが、コードの明瞭さ、保守性、効率性の点で得られる成果は、努力する価値があります。
以上がRxJS で非同期 JavaScript をマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。