layer做阻塞式彈出層的方法


今天遇到一個問題:

  layer彈出一個confirm提示窗,然后confirm還沒有點擊對應的按鈕的時候,就已經執行了后續代碼,我這里做出的判斷是,是否需要進行后續操作,但是因為layer.confitm的非阻塞式的特性導致我這個控制失效,無法達到點擊確定或者取消的效果。

研究了幾個方法,都不怎么樣,有些方法是把后續操作全部放到回調函數里面去,但是這個操作影響到我目前的邏輯,對方法的封裝也不友好,所以就拋棄了。

  后面自己谷歌到一個通過async關鍵字來實現阻塞式彈窗的方法:直接上圖

首先在你需要阻塞的方法的開始寫關鍵字async,

 

 

 我這里是一個點擊事件,所以直接function上加上async關鍵字。

然后內部需要阻塞執行的方法前面需要加上await關鍵字,如圖:

 

 這樣就可以讓代碼停在這個方法,需要注意的是,我這里的MrIsLocked()這個方法,在寫方法具體邏輯的時候,也需要加async關鍵字,

也就是聲明方法的時候,如圖:

  簡單的來說,就是在彈窗的方法聲明時候加上async關鍵字,調用該方法的時候加上await關鍵字,就可以達到這個效果了。

如果有寫的不對的,還望大佬們斧正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM