JavaScript 與jQuery 非同步回傳值
問題:
問題:我們如何可靠地存取從異步jQuery 函數返回GUID 值?
答案:非同步呼叫本質上無法提供回傳值。 jQuery 的非同步函數會立即傳回,這表示函數在返回時它們產生的值不可用。
解決方案:有兩種主要方法來處理這個挑戰:
1。回調函數:<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. Promises:<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>
jQuery 的延遲物件(promise)可讓您建立傳回 Promise 的非同步邏輯。可以將回調附加到這些 Promise,以便在結果可用時接收結果。
以上是如何使用 jQuery 可靠地存取非同步返回值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!