0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RxJS をNetflixに例えて理解する。

Posted at

Netflixの世界で考えるRxJSの基礎

まずはNetflixの世界観でRxJSの主要な登場人物を紹介します。

1. Observable = Netflixサービス

Observableは、動画(データ)を提供するNetflixそのものです。
特徴:

  • ユーザー(視聴者)が「サブスクライブ」しない限り、動画は配信されません。
  • 動画は一つずつ順番に配信されます(リアルタイム感)。
    Netflixが動画を「これは面白いからどうぞ!」と提供する仕組みが、Observableにあたります。

2. Observer = 視聴者

Observerは、配信された動画を楽しむ視聴者そのものです。
特徴:

  • 動画を受け取って視聴(next)。
  • エラーが発生すれば文句を言う(error)。
  • 「今日はもう見終わった!」と満足する(complete)。

3. Subscriber = Netflix愛好会メンバー

Subscriberは、Netflixサービスと視聴者をつなぐ架け橋。
特徴:

  • 「サブスクライブ」することで、動画配信がスタート。
  • 「退会」すれば、もう配信されません(unsubscribe)。

サンプルコード

以下の例で、Netflixのサービスと視聴者の関係をイメージしてください。

import { Observable } from 'rxjs';

// Observable(Netflixサービスの作成)
const netflixService = new Observable<string>(subscriber => {
  subscriber.next('🎬 映画: アクション大作'); // 新着動画
  subscriber.next('📺 ドラマ: ネットフリックスオリジナル');
  subscriber.complete(); // 動画配信終了
});

// Observer(視聴者の定義)
const viewer = {
  next: (video: string) => console.log(`視聴中: ${video}`), // 動画を再生
  error: (err: any) => console.error(`エラー: ${err}`),    // 配信エラー
  complete: () => console.log('視聴が完了しました!')       // 視聴完了
};

// Subscriber(Netflix愛好会メンバー)
const subscription = netflixService.subscribe(viewer);

// 視聴を解除する場合
// subscription.unsubscribe();

出力

視聴中: 🎬 映画: アクション大作
視聴中: 📺 ドラマ: ネットフリックスオリジナル
視聴が完了しました!

退会(unsubscribe)で解約する

もちろん、退会も可能です。以下のコードで、いつでもNetflix愛好会から抜けることができます。

subscription.unsubscribe();
console.log('退会しました。もう動画は配信されません!');
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?