Вывод сообщений из массива с задержкой
Будет массив, в который добавляются сообщения, пусть 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, время: 13:46. |