JavaScript 的互通性承諾實現非同步jQuery 函數的高效連結
連結異步jQuery 函數時,通常需要避免jQuery 的內建函數Promises 功能並使用原生ES6 Promises 取代。這種互通性允許 jQuery 操作和您想要的 Promise 實現之間的無縫整合。
使用Native Promises 連結兩個getJSON 呼叫
連結兩個$.getJSON 呼叫而不使用jQuery then () 或.when(),請遵循這些步驟:
解析第一個jQuery Promise:
Promise.resolve($.getJSON(url1, params1));
在本機中連結第二個呼叫then回呼:
.then((data1) => { return $.getJSON(url2, params2); })
此方法可確保第二次呼叫僅在第一個呼叫成功完成後執行,而不依賴 jQuery 的 Promises 架構。
與 Non 介面-標準方法
雖然 JavaScript Promise 是可互通的,但利用非標準方法或功能需要明確轉換。例如,要存取本機Promise 鏈中的jQuery 特定方法,請在呼叫方法之前使用Promise.resolve() 將jQuery Promise 轉換為本機Promise:
Promise.resolve($.ajax(…)) .then((data) => { // Use jQuery-specific method data.foo(); })
這種方式保證了 foo() 方法是在原生 Promise 鏈的上下文中被呼叫。
總之,透過了解 JavaScript Promise 的互通性,你可以無縫地結合 jQuery 的具有所需 Promise 實現的非同步功能,可有效連結非同步操作。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3