Pengenalan
Paradigma tak segerak dalam JavaScript telah menimbulkan kepada pelbagai konstruk untuk mengurus keputusan masa hadapan: tertunda, janji dan masa hadapan. Walaupun istilah ini sering digunakan secara bergantian, terdapat perbezaan yang ketara dalam penggunaan dan pelaksanaannya.
Tertunda
Tertunda berfungsi sebagai pengantara antara resolusi dan penolakan janji. Mereka membenarkan anda mengawal masa penyelesaian janji dengan menyediakan kaedah penyelesaian dan penolakan. Sesetengah pelaksanaan, seperti jQuery, melanjutkan penangguhan dengan keupayaan seperti janji (kemudian kaedah), manakala yang lain mengekalkan pemisahan yang lebih ketat.
Janji
Janji mewakili hasil daripada tak segerak operasi. Mereka merangkum hasil atau ralat akhirnya dan menyediakan kaedah kemudian untuk melampirkan panggilan balik untuk pemprosesan selanjutnya. Janji adalah teras kepada sintaks async/menunggu, memudahkan pengendalian tugas tak segerak.
Futures
Futures ialah istilah yang kurang biasa digunakan, selalunya sinonim dengan janji. Walau bagaimanapun, satu perbezaan ketara dibuat dalam pustaka FutureJS, di mana niaga hadapan tertumpu semata-mata pada mengabstraksi sinkronisitas dan pengendalian ralat tanpa menyediakan fungsi itu. Pilihan reka bentuk ini selaras dengan konsep thenable, di mana janji dibina.
Perbezaan Utama
Contoh
Kod berikut menunjukkan penggunaan tertunda dan janji dalam jQuery:
<code class="javascript">// Create a deferred var deferred = $.Deferred(); // Resolve the deferred asynchronously setTimeout(function() { deferred.resolve("Hello, World!"); }, 1000); // Create a promise and attach a callback var promise = deferred.promise(); promise.then(function(result) { console.log(result); });</code>
Kesimpulan
Tangguhan, promesas dan niaga hadapan menawarkan pendekatan berbeza untuk mengurus operasi tak segerak dalam JavaScript. Penangguhan memberikan kawalan yang lebih besar ke atas resolusi, manakala janji merangkum keputusan dan membolehkan rantaian. Memahami perbezaan antara binaan ini membolehkan pembangun membuat pilihan termaklum apabila bekerja dengan kod tak segerak.
Atas ialah kandungan terperinci Bagaimanakah Penangguhan, Janji dan Niaga Hadapan Berbeza dalam Paradigma Asynchronous JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!