V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
whatCanIDoForYou
V2EX  ›  JavaScript

[不懂就来问] confirm 没有阻塞运行为什么,先打印了 发送,后面才弹出对话框。请指导下 谢啦

  •  
  •   whatCanIDoForYou · 2020-05-27 15:29:06 +08:00 · 2105 次点击
    这是一个创建于 1644 天前的主题,其中的信息可能已经有所发展或是发生改变。
    let _need_return = false;
    if( _match != `` ){
    // this.openconfirm(`第${i + 1}条最终用户料号存在特殊字符:`+_match);
    this.$confirm(`第${i + 1}条最终用户料号存在特殊字符:`+_match, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning"
    })
    .then(() => {
    console.log("我点了确认")
    _need_return = false;
    })
    .catch(() => {
    console.log("我点击了取消")
    _need_return = true;
    this.$message({
    type: "info",
    message: "已取消删除"
    });
    });
    }
    console.log("发送")
    return;
    第 1 条附言  ·  2020-05-27 16:01:48 +08:00
    收回第一楼的话。comfirm 是可以阻塞~
    5 条回复    2020-05-28 10:31:20 +08:00
    whatCanIDoForYou
        1
    whatCanIDoForYou  
    OP
       2020-05-27 15:41:44 +08:00
    查了下。好像目前支持阻塞的只有 alert...... 但是有一个疑问,我想的是无论是否点击确定,或者取消,只要在弹出对话框时都去阻断函数,这个问题怎么解决
    ghosthcp516
        2
    ghosthcp516  
       2020-05-27 15:45:44 +08:00
    你这个是 element-ui 的确认框吧, 它封装了个 Promise,按 Promise 的逻辑去处理, 不是原生的 confirm 。
    ciaoly
        3
    ciaoly  
       2020-05-27 15:48:01 +08:00 via Android
    把外层函数变成 async 的,用 await
    whatCanIDoForYou
        4
    whatCanIDoForYou  
    OP
       2020-05-27 15:53:11 +08:00
    @ghosthcp516 #2 问题解决了。 他这个是封装的 ,可惜刚接触 vue 他封装到那里,我没有找到,我用了原生的
    const answer = window.confirm(`第${i + 1}条最终用户料号存在特殊字符:`+_match)
    if (answer) {
    console.log("我点了确认")
    } else {
    console.log("我点击了取消")
    return;
    }
    已经 OK 了。
    当然还希望指导下 怎么找到他封装的这个公共方法的包。。。
    ghosthcp516
        5
    ghosthcp516  
       2020-05-28 10:31:20 +08:00
    @whatCanIDoForYou node_modules/element-ui/packages/message-box
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6033 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.