儘管建議避免jQuery Promise,但開發人員在不使用jQuery 的情況下鏈接非同步jQuery 函數時可能會面臨挑戰Promise 處理機制,如.then() 或.when()。為了解決這個問題,請考慮以下方法:
jQuery Promise 可以與 JavaScript Promise 互通。這意味著您可以在程式碼中混合和匹配它們而不會出現問題。所有信譽良好的庫和本機 Promise 都接受來自任何實現的 thenables。因此,在大多數情況下,您可以像所有的 Promise 都使用相同的實作一樣進行編碼。
但是,如果您需要確保所有 .then() 呼叫都使用您的首選實作或實作非標準功能,則必須明確強制直接呼叫方法的所有承諾。例如:
Promise.all([$.ajax(...), $.ajax(...)]) // Just works (native `then`)
$.ajax(...) // jQuery promise Promise.resolve($.ajax(...)) // Explicit cast .then(function(data) { // Native `then` return $.ajax(...); // Just works }) .catch(...) // Use features of native promise
記住,混合 jQuery 和 JavaScript Promise 通常不是問題,但如果您需要對實作進行明確控制,請使用明確轉換方法。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3