首页   注册   登录
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 · 73 天前 · 1012 次点击
    这是一个创建于 73 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 条附言  ·  73 天前
    收回第一楼的话。comfirm 是可以阻塞~
    5 条回复    2020-05-28 10:31:20 +08:00
    whatCanIDoForYou
        1
    whatCanIDoForYou   73 天前
    查了下。好像目前支持阻塞的只有 alert...... 但是有一个疑问,我想的是无论是否点击确定,或者取消,只要在弹出对话框时都去阻断函数,这个问题怎么解决
    ghosthcp516
        2
    ghosthcp516   73 天前
    你这个是 element-ui 的确认框吧, 它封装了个 Promise,按 Promise 的逻辑去处理, 不是原生的 confirm 。
    ciaoly
        3
    ciaoly   73 天前 via Android
    把外层函数变成 async 的,用 await
    whatCanIDoForYou
        4
    whatCanIDoForYou   73 天前
    @ghosthcp516 #2 问题解决了。 他这个是封装的 ,可惜刚接触 vue 他封装到那里,我没有找到,我用了原生的
    const answer = window.confirm(`第${i + 1}条最终用户料号存在特殊字符:`+_match)
    if (answer) {
    console.log("我点了确认")
    } else {
    console.log("我点击了取消")
    return;
    }
    已经 OK 了。
    当然还希望指导下 怎么找到他封装的这个公共方法的包。。。
    ghosthcp516
        5
    ghosthcp516   72 天前
    @whatCanIDoForYou node_modules/element-ui/packages/message-box
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2600 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 14:03 · PVG 22:03 · LAX 07:03 · JFK 10:03
    ♥ Do have faith in what you're doing.