我有一个名为 的函数sweetAlertConfirmationMessage。它接受一条消息,将其显示为文本,然后等待用户确认或取消弹出警报。function sweetAlertConfirmationMessage(message) { Swal.fire({ title: T('SWEETALERT_GENERAL_CONFIRMATION_TITLE'), text: message, icon: 'warning', showCancelButton: true, confirmButtonColor: T('SWEETALERT_CONFIRM_BUTTON_COLOR'), cancelButtonColor: T('SWEETALERT_CANCEL_BUTTON_COLOR'), cancelButtonText: T('SWEETALERT_CANCEL_BUTTON_TEXT'), confirmButtonText: T('SWEETALERT_CONFIRM_BUTTON_TEXT'), }) .then(result => { return new Promise(function (resolve, reject) { resolve(true); }); }) .catch(result => { console.log(result); });}我想要实现的目标如下:sweetAlertConfirmationMessage(T('SWEETALERT_MESSAGE_DELETE_PRODUCT_FROM_CART')) .then( // Run code here. )但是,我收到以下错误:未捕获(承诺中)类型错误:无法读取未定义的属性“then”这是我观察到正在发生的事情:sweetAlertConfirmationMessage 方法已运行。在 Promise 被解决之前,代码继续离开函数,进入 .then(// Run code here).then 没有运行,因为它没有承诺采取行动它显示通知消息并等待用户确认或取消。console.log(结果) 不显示任何内容。我研究了以下主题:异步和等待Promise、.then 和 .catch承诺链如何以所需的顺序执行此代码:显示确认消息等待承诺:如果确认则为 true,如果单击其他任何内容则为未定义运行 .then ( // 在此处运行代码 )我希望这个答案写得足够好,以帮助将来的其他人。
1 回答
森栏
TA贡献1810条经验 获得超5个赞
function sweetAlertConfirmationMessage(message) {
return Swal.fire({
title: T('SWEETALERT_GENERAL_CONFIRMATION_TITLE'),
text: message,
icon: 'warning',
showCancelButton: true,
confirmButtonColor: T('SWEETALERT_CONFIRM_BUTTON_COLOR'),
cancelButtonColor: T('SWEETALERT_CANCEL_BUTTON_COLOR'),
cancelButtonText: T('SWEETALERT_CANCEL_BUTTON_TEXT'),
confirmButtonText: T('SWEETALERT_CONFIRM_BUTTON_TEXT'),
})
}
只需从您的函数返回承诺即可。你可以这样使用它:
sweetAlertConfirmationMessage('msg').then(x => {})
添加回答
举报
0/150
提交
取消