返回 Promise 且被 reject 是什么意思

发布于 2022-09-07 20:20:13 字数 585 浏览 13 评论 0

我在切换选项卡的时候会根据用户的选择来决定是否切换选项卡,选项卡用的是elemenui的tabs组件,我看文档中有一个before-leave的方法如图:

clipboard.png

我的代码:

this.$confirm('您还未保存简介,确定需要离开吗?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
        }).then(() => {
            return true;
        }).catch(() => {
            return false
        });

当我选择取消的时候会returnfalse,但是这样并没有阻止切换,于是我隐隐感觉要用文档中的这句话来阻止“返回 Promise 且被 reject,则阻止切换。”,
但是实在不知道怎么写,求指教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

等风来 2022-09-14 20:20:13

直接把$confirm return回去试下,因为$confirm本来就是返回一个Promise

return this.$confirm('您还未保存简介,确定需要离开吗?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
        })
拥有 2022-09-14 20:20:13

试试这个:

return new Promise((res,rej)=>{
    this.$confirm('您还未保存简介,确定需要离开吗?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
        }).then(() => {
            res()
        }).catch(() => {
            rej()
        });
}
        )
白衬杉格子梦 2022-09-14 20:20:13

你应该返回一个 promise

return new Promise(resolve, reject) {

this.$confirm('您还未保存简介,确定需要离开吗?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
        }).then(() => {
            resolve()
        }).catch(() => {
            reject()
        });
}

试试吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文