首页  >  文章  >  web前端  >  如何使用 jQuery Promises 链接异步调用并在它们之间传递数据?

如何使用 jQuery Promises 链接异步调用并在它们之间传递数据?

Linda Hamilton
Linda Hamilton原创
2024-10-30 14:52:02557浏览

How to Chain Asynchronous Calls and Pass Data Between Them with jQuery Promises?

使用 jQuery Promises 链接异步调用

如何使用 jQuery Promises 链接三个异步调用并在它们之间传递数据?

当处理需要顺序执行的三个 HTTP 调用时,请考虑利用 jQuery Promise 来链接调用并促进数据传输。

最初,尝试对两个函数使用延迟对象会产生部分解决方案。然而,将此方法扩展到三个函数需要不同的策略。

链接调用并传递数据

在每个调用中,返回 $.ajax 生成的 jqXHR 对象()。这些对象遵循 Promise 接口,可以使用 .then()/.done()/.fail()/.always() 进行链接。

<code class="javascript">function first() {
   return $.ajax(...);
}

function second(data, textStatus, jqXHR) {
   return $.ajax(...);
}

function third(data, textStatus, jqXHR) {
   return $.ajax(...);
}</code>

在主函数中,将函数与.then() 如下:

<code class="javascript">function main() {
    first().then(second).then(third);
}</code>

传递给后续函数的 data、textStatus 和 jqXHR 参数源自前面函数中的 $.ajax() 调用。这允许每个函数访问和利用前一个调用的输出。

出于说明目的,下面的演示使用 $.when('foo') 而不是 $.ajax(...) 来提供已履行的承诺。

<code class="javascript">function main() {
    $.when('foo').then(second).then(third);
}</code>

通过以这种方式链接承诺并传递数据,您可以同步有效地执行三个异步调用。

以上是如何使用 jQuery Promises 链接异步调用并在它们之间传递数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn