*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!