今天遇到一个问题:文章来源地址https://www.yii666.com/article/301050.html?action=onAll
layer弹出一个confirm提示窗,然后confirm还没有点击对应的按钮的时候,就已经执行了后续代码,我这里做出的判断是,是否需要进行后续操作,但是因为layer.confitm的非阻塞式的特性导致我这个控制失效,无法达到点击确定或者取消的效果。
研究了几个方法,都不怎么样,有些方法是把后续操作全部放到回调函数里面去,但是这个操作影响到我目前的逻辑,对方法的封装也不友好,所以就抛弃了。文章来源地址https://www.yii666.com/article/301050.html?action=onAll
后面自己谷歌到一个通过async关键字来实现阻塞式弹窗的方法:直接上图文章来源地址:https://www.yii666.com/article/301050.html?action=onAll
首先在你需要阻塞的方法的开始写关键字async,
我这里是一个点击事件,所以直接function上加上async关键字。
然后内部需要阻塞执行的方法前面需要加上await关键字,如图:文章来源地址:https://www.yii666.com/article/301050.html?action=onAll
这样就可以让代码停在这个方法,需要注意的是,我这里的MrIsLocked()这个方法,在写方法具体逻辑的时候,也需要加async关键字,https://www.yii666.com/
也就是声明方法的时候,如图:
简单的来说,就是在弹窗的方法声明时候加上async关键字,调用该方法的时候加上await关键字,就可以达到这个效果了。