Observable vs Promise

DDD
リリース: 2024-11-27 21:22:11
オリジナル
453 人が閲覧しました

Observable v/s Promise

*Observables * と *Promises * はどちらも JavaScript で非同期操作を処理するために使用されますが、いくつかの重要な違いがあります。

約束

  • 単一の値: Promise は単一の非同期イベントを処理し、単一の値 (またはエラー) を返します。
  • 熱心: Promise は作成後すぐに実行を開始します。
  • キャンセル不可: プロミスは一度開始されるとキャンセルできません。
  • 構文: 連鎖操作に .then()、.catch()、および .finally() を使用します。

例:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise resolved!');
  }, 1000);
});

promise.then((value) => {
  console.log(value);
});
ログイン後にコピー

観測対象

  • 複数の値: Observable は時間の経過とともに複数の値を放出できます。
  • Lazy: Observable はサブスクライブされるまで値の発行を開始しません。
  • キャンセル可能: Observable へのサブスクリプションをキャンセルして、値の発行を停止できます。
  • 構文: .subscribe() を使用して、出力された値、エラー、完了を処理します。

例:

import { Observable } from 'rxjs';

const observable = new Observable((subscriber) => {
  subscriber.next('First value');
  setTimeout(() => {
    subscriber.next('Second value');
    subscriber.complete();
  }, 1000);
});

const subscription = observable.subscribe({
  next(value) {
    console.log(value);
  },
  complete() {
    console.log('Observable complete');
  }
});

// To cancel the subscription
subscription.unsubscribe();
ログイン後にコピー

それぞれをいつ使用するか

  • 単一の非同期操作を処理する必要がある場合は、Promise を使用します。
  • 時間の経過とともに複数の非同期イベントまたは値を処理する必要がある場合、およびデータ ストリームをさらに制御する必要がある場合 (キャンセル、変換など)、Observable を使用します。

以上がObservable vs Promiseの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート