Я столкнулся с проблемой, которая сводит меня с ума уже дней 10... По сути, у меня есть функция, которая срабатывает (handleText
), и я хочу дождаться окончания этой функции, прежде чем запускать вторую (handleBackground
).
Я пробовал отложенные и обещания, но я думаю, что плохо их понимаю, потому что не могу заставить его работать так, как я хочу.
function handleText(){
//BLAST INIT
var blastedwords = $('.baselineHeader').blast({
delimiter: 'word',
});
//SHUFFLE ORDER IN ARRAY
blastedwords = shuffleAds( blastedwords);
function shuffleAds(arr){
for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
return arr;
}
//ADD CLASS TO SPAN CREATED WITH BLAST WITH A RANDOM DELAY
blastedwords.each(function(index) {
var min = 45, max = 100;
var delay = Math.floor(Math.random() * (max - min) + min);
var that = $(this);
var t = setTimeout(function() {
$(that).addClass("test");
}, delay * index);
});
}
function handleBackground(){
$('.baselineHeader').addClass('processed');
}
handleText();
handleBackground();
Прямо сейчас handleText
start и handleBackground
(моя вторая функция, которую я хочу запустить после завершения первой) срабатывают одновременно и не ждут завершения handleText
.
Я хочу, чтобы handleText
запускался и ждал, пока каждый цикл передаст класс каждому промежутку, созданному с помощью blast.js, прежде чем запускать handleBackground
.
Может кто-то помочь мне с этим ? Всем хорошего дня :)
handleBackground()
в обратном вызовеsetTimeout()
. - person Randy Casburn   schedule 04.07.2019