gpt4 book ai didi

Javascript ajax同步请求不起作用

转载 作者:行者123 更新时间:2023-12-01 01:35:49 25 4
gpt4 key购买 nike

我正在对我的网站发出连续的 AJAX 请求。有 2 个 POST 请求。第二个请求应在第一个请求完成后处理。我的代码如下:

$.ajax({
type: 'POST',
url: '/backend/edge/enableNewAgent/',
async: false,
success: function () {
console.log("First Process Done");
}
});
$.ajax({
type: 'POST',
url: '/backend/edge/deleteOldAgent/',
async: false,
success: function () {
console.log("Second Process Done");
}
});

第二个进程在第一个进程之后完成,但控制台日志记录是在第二个进程完成后执行的,而不是在第一个进程完成后执行的。我希望 console.log 在第一个进程完成后立即执行,然后继续执行第二个进程。有人可以帮忙吗?

最佳答案

如果您想编写同步“查看”代码并避免同步 XMLHttpRequest - 您可以使用 async/await

async function doAjax() {
await $.ajax({
type: 'POST',
url: '/backend/edge/enableNewAgent/',
success: function() {
console.log("First Process Done");
}
});
await $.ajax({
type: 'POST',
url: '/backend/edge/deleteOldAgent/',
success: function() {
console.log("Second Process Done");
}
});
}

实际上,这样做更好

async function doAjax() {
await $.ajax({
type: 'POST',
url: '/backend/edge/enableNewAgent/'
});
console.log("First Process Done");
await $.ajax({
type: 'POST',
url: '/backend/edge/deleteOldAgent/'
});
console.log("Second Process Done");
}

注意,它必须在一个函数内完成(不必是像这样的单独函数,只需将其放在那里以强制执行该想法... await 仅在 异步函数)

关于Javascript ajax同步请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52833321/

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