layui.layer.prompt重写原版提示栏

接上一个问题,当今天重写alert和confirm时发现已经有很多之前写好的调用了,现在都给加上await和async着实不太现实了,能不能原来保持不动情况下实现layui的重写
https://ask.csdn.net/questions/7875810

不使用浏览器原生的prompt,其他层模拟的对话框无法挂起后续js代码执行,原来改写的prompt,最后直接就return返回值了,并不会等待layui.layer.prompt中yes回调执行设置value的值。

所以要用layui的组件模拟prompt输入,click事件中代码必须要改的,async+await是改动最小的,要不用Promise then方法的话得改成这样


 'click #sendMail': function (e, value, row, idnex) {
            prompt('请输入要发送的邮箱').then(function(mail){
            alert(mail)
            //...其他代码
         })

        }

或者回调的形式,和then一样改动


 
    function prompt(title,callback) {

            layui.use(['form', 'layer', 'element'], function () {
                layui.element.init();
            });
            layui.layer.prompt({
                formType: 2,
                title,
                area: ['500px', '150px'],
                yes: function (index, layero) {
                    let value = layero.find('.layui-layer-input').val();
                    callback(value);////
                    layer.close(index)
                }
            })

    }
 
 
 
 
 
        'click #sendMail': function (e, value, row, idnex) {
            prompt('请输入要发送的邮箱',function(mail){
            alert(mail)
            //...其他代码

          });
        }

那你只能是在if 判断下面 用alert了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632