gpt4 book ai didi

javascript - 告诉 javascript 先运行 jquery ajax

转载 作者:行者123 更新时间:2023-11-29 10:18:32 25 4
gpt4 key购买 nike

简而言之,如何让 alert(1) 先运行:

    $.post('example.php', function() {
alert(1);
})
alert(2);
alert(3);
alert(4);

但是 jquery ajax 调用看起来像是在异步方法中运行。所以 JavaScript 将首先运行下面的所有内容,alert(2) 到 alert(4),然后返回到 post 方法,alert(1)。

当然我可以将代码放在ajax函数中,但是当我有几十个函数时这就没有意义了,然后我必须将代码添加到所有函数中。

    $.post('example.php', function() {
alert(1);
example();
})

function example() {
alert(2);
alert(3);
alert(4);
}

我想从 ajax 调用中获取一些 json 数据,并在以后使用它。那么有什么聪明的解决办法吗?


2021-08-25

8 年后,async/await 的引入很棒,我不再真正使用 jquery,所以我没有测试代码

await Promise.resolve($.post('example.php', function() {
alert(1);
example();
}));

alert(2);
alert(3);
alert(4);

最佳答案

在 jQuery 中,我更喜欢使用 $.when 和 $.then,这很容易做到,而且使用它代码更易读。

function CatchTheFish(){
console.log('we are catching the fish');
}
function EattheFish(){
console.log('now time to eat this fish');
}
$.when ( CatchTheFish() ).then( EattheFish() );

此代码适用于最新版本的 jQuery 1.9.1

关于javascript - 告诉 javascript 先运行 jquery ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16629979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com