Когда я перебираю массив в javascript, он приостанавливается на 3 секунды после каждого элемента. Он делает это успешно, но замораживает веб-страницу до завершения массива.
function launchTutorial() {
HideFloatingMenu(); //freezes on page and it doesn't when i comment out the subsequent array loop
//highlightElement("diLeftColumn");
//the classes of each element to highlight in the tutorial
var tutorialClasses = [
"diLeftColumn",
"diMiddleColumn",
"diRightColumn"
];
var threeSec = new Date().getTime() + 3000;
for (var i = 0; i < tutorialClasses.length; i++) {
//$.each(tutorialClasses, function (key, value) {
if (i != 0) {
var now = new Date().getTime();
if (now >= threeSec) {
highlightElement(tutorialClasses[i]);
threeSec = new Date().getTime() + 3000;
}
else {
i = i - 1; //go back to this item if it hasn't been 3 seconds
}
}
else {
highlightElement(tutorialClasses[i]);
threeSec = new Date().getTime() + 3000;
}
}
}
Я пробовал setTimeout(), setInterval(0, delay(), 2 разные пользовательские функции сна и цикл while. Ни одна из них не сработала.
event loop
что-то что-то, хорошо, теперь с этим покончено, вы блокируете свое выполнение, потому что все, что вы делаете, синхронно, я хотел бы увидеть вашу реализацию setTimeout(), потому что это был бы правильный путь о том, чтобы сделать эту задержку (хотя это будет не идеально, JSYK, но, вероятно, достаточно хорошо!) - person Cody G   schedule 04.11.2017