在鍊式非同步操作中避免 jQuery Promise
建議在使用 ECMAScript Promise 時盡量減少 jQuery Promise 的使用。然而,在不使用 jQuery 的 then 或 .when 的情況下連結兩個非同步 jQuery 函數變得具有挑戰性。
避免 jQuery Promises
當使用 Promise.resolve($.getJSON(url, params)) 可以隱藏 jQuery 承諾,它在鍊式操作中無效。為了避免在這種情況下使用 jQuery Promise,必須識別並明確轉換您直接呼叫方法的所有 jQuery Promise。
JavaScript Promise 的互通性
JavaScript Promise 是可互通,這意味著您可以混合和匹配來自不同實現的它們。但是,為了確保使用特定的實現,您必須明確轉換 jQuery Promise。
範例
考慮以下使用本機Promise 連結兩個getJSON 呼叫的程式碼:
Promise.resolve($.getJSON("url1", params)) .then(function(data) { return $.getJSON("url2", params); }) .then(function(data) { // Process data });
在此範例中,$.getJSON返回jQuery 承諾。為了避免使用 jQuery 的 then 方法,我們使用 Promise.resolve 將 jQuery Promise 明確轉換為原生 Promise。隨後,我們可以繼續使用原生 Promise 方法進行鏈接,確保所有 .then 方法呼叫都使用原生實作。
結論
透過明確轉換jQuery Promise,您可以將它們無縫整合到使用本機ECMAScript Promise 的操作中,讓您避免jQuery Promise,同時保持連結異步操作的能力。
以上是在連結異步 jQuery 函數時如何避免使用 jQuery Promise?的詳細內容。更多資訊請關注PHP中文網其他相關文章!