Perbezaan antara Ditunda dan janji dalam jQuery_jquery

WBOY
Lepaskan: 2016-05-16 15:06:39
asal
1126 orang telah melayarinya

Apakah perbezaan antara Tertunda dan Janji?

janji

Janji ialah objek yang dikembalikan oleh fungsi tak segerak. Apabila anda ingin menulis fungsi sedemikian sendiri anda perlu menggunakan tertunda.

var promise = $.ajax({
url: "/myServerScript"
});
promise.done(mySuccessFunction); 
promise.fail(myErrorFunction); 
var promise = $.ajax({
url: "/myServerScript"
}); 
promise.then(mySuccessFunction,myErrorFunction); 
Salin selepas log masuk

Kebaikan menggunakan Promises adalah seperti berikut:

Anda boleh memanggil fungsi done() dan fail() beberapa kali dan menggunakan fungsi panggil balik yang berbeza. Mungkin anda mempunyai satu fungsi panggil balik untuk menghentikan animasi, satu untuk memulakan permintaan AJAX baharu dan satu untuk memaparkan data yang diterima kepada pengguna.

var promise = $.ajax({ url: "/myServerScript" });
promise.done(myStopAnimationFunction); promise.done(myOtherAjaxFunction); 
promise.done(myShowInfoFunction); promise.fail(myErrorFunction);
Salin selepas log masuk

Walaupun selepas panggilan AJAX selesai, anda masih boleh memanggil fungsi done() dan fail(), dan fungsi panggil balik boleh dilaksanakan serta-merta. Tiada kekeliruan pembolehubah antara negeri yang berbeza. Apabila panggilan AJAX tamat, ia mengekalkan status kejayaan atau kegagalan dan status ini tidak berubah.

Anda boleh menggabungkan janji. Kadangkala anda perlu membuat dua permintaan AJAX pada masa yang sama dan ingin memanggil fungsi apabila kedua-dua permintaan AJAX berjaya. Untuk melaksanakan tugas ini, anda perlu menggunakan fungsi $.when() baharu:

var promise1 = $.ajax("/myServerScript1"); 
var promise2 = $.ajax("/myServerScript2");
$.when(promise1, promise2).done(function(xhrObject1, xhrObject2) { // 处理两个XHR对象 });
Salin selepas log masuk

ditunda

Ringkasnya, objek tertunda ialah penyelesaian fungsi panggil balik jQuery. Dalam bahasa Inggeris, defer bermaksud "penangguhan", jadi maksud objek tertunda ialah "menangguhkan" pelaksanaan sehingga satu titik tertentu pada masa hadapan.

Objek tertunda boleh melakukan perkara yang sama seperti objek janji, tetapi ia mempunyai dua fungsi untuk mencetuskan fungsi done() dan fail().

Objek tertunda mempunyai fungsi resolve() untuk mengendalikan hasil yang berjaya dan melaksanakan fungsi yang berkaitan dengan done(). Fungsi reject() digunakan untuk mengendalikan keputusan yang gagal dan melaksanakan fungsi yang berkaitan dengan fail().

Anda boleh menyediakan parameter untuk kedua-dua fungsi resolve() dan reject(), dan kemudian kedua-duanya akan dihantar ke fungsi panggil balik yang berkaitan dengan done() dan fail().

Ringkasan

Ajax jQuery adalah untuk mengembalikan objek janji, yang mengandungi kaedah done(), fail() tertunda ialah proses mengembalikan objek janji ini.

Label berkaitan:
sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!