Я знаю, с первого взгляда (из-за названия) это выглядит как "Вы пробовали искать в Google перед публикацией?" вопросы, но я не могу найти ответ на конкретный вопрос, который я испытываю. Извините, если я нуб .... еще учусь :) 1001 *
Мне нужно смоделировать паузу в javascript, но функция setTimeout (function_call, timeout) не работает для меня. Причина в том, что ... когда вызывается эта функция setTimeout, она вызывает функцию асинхронно.
Немного фона:
Я пытаюсь смоделировать текст, вводимый в div с произвольно установленными интервалами. Я хочу, чтобы это выглядело так, как будто человек действительно печатает сообщение, пока пользователь просматривает страницу. Поскольку тайм-аут является случайным интервалом, а вызов функции выполняется асинхронно, текст в конечном итоге печатается в случайном порядке.
Вот фрагмент того, что у меня есть:
typeString: function(s)
{
for(var i=0;i<s.length;i++)
{
var c = s.charAt(i);
var temp = setTimeout("MessageType.typeChar('" + c + "')", this.genRandomTime());
}
}
Заранее спасибо за помощь.
CJAM
ОБНОВЛЕНИЕ: добавив задержку таймера к переменной, это позволило мне компенсировать timeOut для асинхронных вызовов. Спасибо всем за ваши быстрые ответы. Вот обновленный код:
typeString: function(s)
{
var delay = 0;
for(var i=0;i<s.length;i++)
{
var c = s.charAt(i);
setTimeout("GoogleTyper.typeChar('"+c+"')", delay += this.genRandomTime());
}
}