Rumah > hujung hadapan web > tutorial js > Boleh diperhatikan v/s Janji

Boleh diperhatikan v/s Janji

DDD
Lepaskan: 2024-11-27 21:22:11
asal
401 orang telah melayarinya

Observable v/s Promise

*Pemerhatian * dan *Janji * kedua-duanya digunakan untuk mengendalikan operasi tak segerak dalam JavaScript, tetapi ia mempunyai beberapa perbezaan utama:

Janji

  • Nilai Tunggal: Janji mengendalikan satu peristiwa tak segerak dan mengembalikan satu nilai (atau ralat).
  • Bersemangat: Janji mula dilaksanakan serta-merta selepas penciptaan.
  • Tidak Boleh Dibatalkan: Setelah Janji dimulakan, ia tidak boleh dibatalkan.
  • Sintaks: Menggunakan .then(), .catch(), dan .finally() untuk operasi rantaian.

Contoh:

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

promise.then((value) => {
  console.log(value);
});
Salin selepas log masuk

Boleh diperhatikan

  • Berbilang Nilai: Boleh diperhatikan boleh mengeluarkan berbilang nilai dari semasa ke semasa.
  • Malas: Yang boleh diperhatikan tidak mula mengeluarkan nilai sehingga ia dilanggan.
  • Boleh Dibatalkan: Langganan kepada Observables boleh dibatalkan, menghentikan pelepasan nilai.
  • Sintaks: Menggunakan .subscribe() untuk mengendalikan nilai yang dipancarkan, ralat dan penyiapan.

Contoh:

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();
Salin selepas log masuk

Bila Gunakan Setiap

  • Gunakan Promises apabila anda perlu mengendalikan satu operasi tak segerak.
  • Gunakan Observables apabila anda perlu mengendalikan berbilang peristiwa atau nilai tak segerak dari semasa ke semasa dan apabila anda memerlukan lebih kawalan ke atas strim data (cth., pembatalan, transformasi).

Atas ialah kandungan terperinci Boleh diperhatikan v/s Janji. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan