简而言之,如何让 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);