使用 jQuery Promises 連結非同步呼叫
JavaScript 中的非同步程式設計允許程式碼在不阻塞使用者介面的情況下執行。為了實現這一點,Promise 通常用於管理資料流並確保任務按特定順序執行。
在給定的場景中,您的目標是按順序執行三個非同步 HTTP 呼叫。您提供了一個部分解決方案,涉及兩個具有延遲承諾的函數。將其擴展到三個函數,讓我們深入研究核心概念。
在每個發起非同步請求的函數中,傳回 $.ajax() 傳回的 jqXHR 物件。這些 jqXHR 物件是 Promise 相容的,這意味著它們可以使用 .then()、.done()、.fail() 或 .always() 輕鬆連結。
在這種情況下,.then( )是最合適的,因為它允許您連接三個呼叫並將資料從一個呼叫傳遞到另一個呼叫。以下程式碼範例說明了完整的解決方案:
<code class="javascript">function first() { return $.ajax(...); } function second(data, textStatus, jqXHR) { return $.ajax(...); } function third(data, textStatus, jqXHR) { return $.ajax(...); } function main() { first().then(second).then(third); }</code>
參數 data、textStatus 和 jqXHR 從上一個呼叫的 $.ajax() 呼叫傳遞到每個後續函數。這使您能夠將資料從first()傳遞到second(),以及從second()傳遞到third(),確保呼叫同步執行並且資料在它們之間無縫流動。
您也可以使用像 $.when('foo') 這樣的輔助函數,可以在測試或開發解決方案時代替 $.ajax(...) 交付已履行的承諾。
以上是如何使用 jQuery Promises 順序執行三個非同步 HTTP 呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!