Как улучшить мой вызов нескольких JavaScript функций. Программа работает, однако я хотел бы более плавный способ обработки этих функций - PullRequest
0 голосов
/ 08 апреля 2020

Скрипт работает, однако вся задержка (setTimeout) неуклюжа, и я обеспокоен тем, что она не будет работать на медленных соединениях. Должен быть лучший способ справиться с этим только с 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();

1 Ответ

1 голос
/ 08 апреля 2020

если вы пытаетесь что-то вроде цепочки, то есть функция start () должна быть выполнена после завершения navigate (), а pickForm должна быть выполнена после start (), вы можете сделать это с помощью обещаний или обратных вызовов.

//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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...