为了账号安全,请及时绑定邮箱和手机立即绑定

如何抽象 Javascript Promise 并保留 .then

如何抽象 Javascript Promise 并保留 .then

白板的微信 2023-09-28 15:38:07
我有一个名为 的函数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 => {})

查看完整回答
反对 回复 2023-09-28
  • 1 回答
  • 0 关注
  • 49 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信