[不懂就来问] confirm 没有阻塞运行为什么,先打印了 发送,后面才弹出对话框。请指导下 谢啦
- 0次
- 1975-03-01 23:31:02
- idczone
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;
查了下。好像目前支持阻塞的只有 alert...... 但是有一个疑问,我想的是无论是否点击确定,或者取消,只要在弹出对话框时都去阻断函数,这个问题怎么解决
你这个是 element-ui 的确认框吧, 它封装了个 Promise,按 Promise 的逻辑去处理, 不是原生的 confirm 。
把外层函数变成 async 的,用 await
问题解决了。 他这个是封装的 ,可惜刚接触 vue 他封装到那里,我没有找到,我用了原生的
const answer = window.confirm(`第${i + 1}条最终用户料号存在特殊字符:`+_match)
if (answer) {
console.log("我点了确认")
} else {
console.log("我点击了取消")
return;
}
已经 OK 了。
当然还希望指导下 怎么找到他封装的这个公共方法的包。。。
node_modules/element-ui/packages/message-box