Вывод сообщений из массива с задержкой
Будет массив, в который добавляются сообщения, пусть var messages = ['сообщение 1', 'сообщение 2']; нужно написать функцию, которая будет выводить поочередно все сообщения из массива с задержкой в 3-5 сек. Типа: сообщение 1 (3 сек таймаут, и выводится следующее и тоже с задержкой в 3 сек, и так, пока все не выведет). Вроде бы и просто, но не могу понять, как это без велосипеда реализовать.
|
SinteC,
таймер на 3 сек запускает функцию которая выдаёт 1 элемент массива -- если массив ещё содержит элементы функция запускает таймер -- смотри сначала |
var messages = ['сообщение 1', 'сообщение 2']; var interval = setInterval(function() { if (messages.length === 0) { clearInterval(interval); } else { // вывод сообщения console.log(messages.shift()); } }, 3000); |
devote, твой код начнет работать после запуска спустя 3 секунды, а нужно, чтобы при вызове функции сразу выводилось первое сообщение, а последующие уже с интервалом. В этом и суть, что без велосипеда, видимо, не реализовать(
|
Ну добавь "console.log(messages.shift());" перед установкой таймера. Либо через setTimeout с рекурсией.
|
Все, всем спасибо, разобрался.
|
Цитата:
|
Цитата:
|
devote,
сорри, не проснулся еще :) |
Часовой пояс GMT +3, время: 02:48. |