JavaScript Asynchronous Return Value dengan jQuery
Soalan:
Bagaimana kita boleh mengakses dengan pasti Nilai GUID dikembalikan daripada fungsi jQuery tak segerak?
Jawapan:
Panggilan tak segerak, mengikut sifatnya, tidak boleh memberikan nilai pulangan. Fungsi tak segerak jQuery kembali serta-merta, bermakna nilai yang mereka hasilkan tidak tersedia apabila fungsi itu kembali.
Penyelesaian:
Terdapat dua pendekatan utama untuk menangani cabaran ini:
1. Fungsi Panggilan Balik:
Ini melibatkan penghantaran fungsi panggil balik kepada fungsi tak segerak, yang menerima hasilnya apabila ia tersedia.
<code class="javascript">function trackPage() { var elqTracker = new jQuery.elq(459); elqTracker.pageTrack({ success: function() { elqTracker.getGUID(function(guid) { // Handle the GUID here alert(guid); }); } }); }</code>
2. Janji:
Objek tertunda jQuery (janji) membolehkan anda mencipta logik tak segerak yang mengembalikan janji. Panggilan balik boleh dilampirkan pada janji-janji ini untuk menerima keputusan apabila ia tersedia.
<code class="javascript">function trackPage() { var elqTracker = new jQuery.elq(459); var dfd = $.Deferred(); elqTracker.pageTrack({ success: function() { elqTracker.getGUID(function(guid) { dfd.resolve(guid); }); } }); return dfd.promise(); } // Usage: trackPage().done(function(guid) { alert("Got GUID: " + guid); });</code>
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Boleh Mengakses Nilai Pulangan Asynchronous dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!