layer.confirm 阻断执行实现方式

6827阅读
0评论
0点赞

在工作中,我们可能会遇到循环体里面执行某些弹窗提示,通常用js原生的alert与confirm可以实现阻断,只有点击确认才继续执行。

但是,alert与confirm并不能控制样式等操作,尤其是想confirm的时候增加一个layer.tips吸附提示,你会发现confirm弹窗了,tips并没有执行。只有确认了confirm之后才执行~

鉴于此,我们可以基于async/await的原理来开发一个阻断控制器。

async function test() {
    console.log('sleep');

    function backStop(ms) {
        let callback = null;
        layer.confirm('is not?', {icon: 3, title:'提示'}, function(index){
            if(typeof callback == 'function')callback();
            layer.close(index);
        },function (index) {
            if(typeof callback == 'function')callback();
            layer.close(index);
        });
        return new Promise(resolve => callback = resolve);
    }

    await backStop();
    console.log('run');
}

test();


评论(0)
暂无评论