Я добавил функцию в свой проект, который выводит предложения с таймаутом между символами, который отлично работает. Проблема в том, что JS выполняет все вызовы функций async, в то время как я хочу, чтобы он дождался завершения предыдущего предложения до следующего запуска.Ожидание выполнения предыдущей функции async
Я хочу, чтобы это была цельная функция jQuery, которая в конечном итоге работает с .delay. У меня есть довольно много предложений, которые я хочу напечатать, так что вложенные обратные вызовы будут утомительными.
Я пробовал несколько методов, но ближайший у меня есть вызов функции с задержкой между ними, что становится довольно раздражающим, когда мне нужно, чтобы функция завершилась.
Heres самая последняя
var printMsg = function(msg) {
var index = 0;
var out = $('#out').append('<pre></pre>');
var msgOut = setInterval(function() {
out.children(':last-child').append(msg[index++]);
if (index >= msg.length) {
clearInterval(msgOut);
};
}, 150);
}
Тогда я должен называть их как этот
var timeout = 8000;
printMsg('Lorem ipsum Laboris Duis cupidatat ut id enim nisi');
setTimeout(function() {
printMsg('Lorem ipsum Laboris Duis cupidatat ut id enim nisi');
}, timeout);
timeout += 8000;
setTimeout(function() {
printMsg('Lorem ipsum Laboris Duis cupidatat ut id enim nisi');
}, timeout);
что остановило вас от используя обратные вызовы? –