使用jQuery Promises 連結三個非同步呼叫
您需要依序執行三個非同步調用HTTP 調用,從一個呼叫傳遞資料到下一個。提供的程式碼對兩個函數使用延遲對象,但需要對三個函數進行擴展。
在每種情況下,傳回 $.ajax() 產生的 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(...); }</code>
在「main」函數中,使用 .then() 將函數連結在一起。
<code class="javascript">function main() { first().then(second).then(third); }</code>
參數數據, textStatus 和 jqXHR 源自前面函數中的 $.ajax() 呼叫。換句話說,first() 提供了 secondary(),而 secondary() 則提供了third()。
(為了說明,使用 $.when('foo') 產生一個已完成的 Promise 來代替 $。ajax(...))。
以上是如何使用 jQuery Promises 順序連結三個非同步呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!