要解决Ajax和SweetAlert不会等待确认继续执行的问题,可以使用Promise对象来实现。
下面是一个示例代码:
// 定义一个函数,用于显示SweetAlert对话框
function showAlert() {
return new Promise((resolve, reject) => {
swal({
title: "Are you sure?",
text: "You won't be able to revert this!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((confirm) => {
if (confirm) {
resolve(); // 用户点击确认按钮,解析Promise
} else {
reject(); // 用户点击取消按钮,拒绝Promise
}
});
});
}
// 定义一个函数,用于执行Ajax请求
function performAjaxRequest() {
// 执行Ajax请求的代码
// ...
}
// 使用示例
showAlert()
.then(() => {
// 用户点击确认按钮,继续执行Ajax请求
performAjaxRequest();
})
.catch(() => {
// 用户点击取消按钮,不执行Ajax请求
console.log("User canceled the operation");
});
在上面的示例中,showAlert
函数返回一个Promise对象,该对象在用户点击确认按钮时解析,用户点击取消按钮时被拒绝。然后,根据用户的选择,可以继续执行Ajax请求或执行其他操作。
请注意,上面的代码示例使用了SweetAlert的promise API(.then
和.catch
方法)来处理用户的选择。确保您已经正确引入SweetAlert库并设置了正确的选项。