如何改善我对多个JavaScript函数的调用。程序工作正常,但是我想使用一种更平滑的方式来处理这些功能

问题描述 投票:-1回答:1

脚本有效,但是整个延迟(setTimeout)都很笨拙,我担心它不适用于慢速连接。必须有一种更好的方法来使用only JavaScript和jQuery处理这个问题,对不对?功能很简单,例如导航页面,单击输入和输入文本数据。

没有延迟,某些事件将触发故障。例如,有时create()函数会在之前的函数完成之前被调用。

 function all() {
        navigate();
        setTimeout(start, 400);
        setTimeout(pickForm, 600);
        setTimeout(addName, 900);
        setTimeout(addDescription, 1500);
        setTimeout(singleLineTextField, 2000);
        setTimeout(multiLineTextField, 2200);
        setTimeout(radioButtons, 2400);
        setTimeout(checkBoxes, 2600);
        setTimeout(dropDown, 2800);
        setTimeout(multiSelect, 3000);
        setTimeout(datePicker, 3200);
        setTimeout(smessages, 3400);
        setTimeout(fmessages, 3600);
        setTimeout(create, 3800);
        setTimeout(properties, 5000);
    }
    all();
javascript jquery function dom
1个回答
0
投票

如果您正在尝试类似链接的操作,即start()函数将在完成navigation()之后执行,而pickForm将在start()之后执行,您可以使用promise或callbacks来做到这一点。

//cb_func is a callback function
// receive a function -----------------
function getNewENumber( parentENumber, cb_func ){

    $.ajax({
           type: "POST",
           url: "",
           data: {}

             // ------v-------use it as the callback function
           success: cb_func,
            error: function(request,error) {
                alert('An error occurred');
                // console.log(request, error);
            }
    });
}

var parentENumber = E1-3;

getNewENumber(parentENumber, function( returnValue ){
    alert( returnValue );
});

hope this helps.
© www.soinside.com 2019 - 2024. All rights reserved.