Rumah > Artikel > hujung hadapan web > Apakah keadaan yang berbeza bagi janji JavaScript dan bagaimana ia berkaitan dengan istilah seperti "selesai," "diselesaikan" dan "tertunda"?
Istilah Janji JavaScript
Memahami terminologi yang mengelilingi janji JavaScript mungkin mencabar. Menurut spesifikasi Promises/A dan ES6, janji mempunyai tiga keadaan berbeza:
Selesai, Diselesaikan dan Ditepati
Istilah "selesai" merujuk kepada sama ada dipenuhi atau ditolak, secara kolektif, membayangkan bahawa janji itu tidak lagi tertangguh. Walau bagaimanapun, "diselesaikan" ialah konsep yang kompleks.
Ia kadangkala boleh digunakan secara bergantian dengan "dipenuhi", tetapi tafsiran yang lebih tepat ialah "menyelesaikan" ialah tindakan menetapkan nasib janji sama ada dipenuhi atau ditolak . "Penyelesaian" janji menandakan bahawa ia telah keluar daripada keadaan belum selesai.
Rekursi dan Menyelesaikan
Prosedur Penyelesaian Janji adalah rekursif. Menyelesaikan janji dengan nilai asas memenuhinya, manakala menyelesaikannya dengan janji lain mengamalkan keadaan janji itu. Ini boleh membawa kepada senario di mana janji diselesaikan tetapi keadaan terakhirnya tidak ditentukan. Dalam kes sedemikian, janji itu dirujuk sebagai "diselesaikan" dalam erti kata bahawa takdirnya tidak lagi samar-samar, tetapi keadaan sebenar mungkin masih belum selesai.
Menunda
Menunggu keputusan melibatkan penyediaan janji tak segerak untuk keputusan dan bukannya mengembalikan hasilnya secara terus. Proses ini juga mengembalikan penolakan tertunda dan bukannya melontar secara serentak.
Dalam perpustakaan tertentu, seperti Q, istilah "tunda" merujuk kepada kaedah yang membina objek Tertunda. Adalah penting untuk ambil perhatian bahawa nama pembolehubah mungkin tidak selalu mencerminkan maksud yang dimaksudkan dengan tepat dan "menangguhkan" juga mungkin merupakan singkatan untuk "deferredObject."
Atas ialah kandungan terperinci Apakah keadaan yang berbeza bagi janji JavaScript dan bagaimana ia berkaitan dengan istilah seperti "selesai," "diselesaikan" dan "tertunda"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!