Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2014, 15:36
Новичок на форуме
Отправить личное сообщение для SinteC Посмотреть профиль Найти все сообщения от SinteC
 
Регистрация: 17.06.2014
Сообщений: 8

Вывод сообщений из массива с задержкой
Будет массив, в который добавляются сообщения, пусть var messages = ['сообщение 1', 'сообщение 2']; нужно написать функцию, которая будет выводить поочередно все сообщения из массива с задержкой в 3-5 сек. Типа: сообщение 1 (3 сек таймаут, и выводится следующее и тоже с задержкой в 3 сек, и так, пока все не выведет). Вроде бы и просто, но не могу понять, как это без велосипеда реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2014, 16:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

SinteC,
таймер на 3 сек запускает функцию которая выдаёт 1 элемент массива -- если массив ещё содержит элементы функция запускает таймер -- смотри сначала
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2014, 16:32
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var messages = ['сообщение 1', 'сообщение 2'];
var interval = setInterval(function() {
  if (messages.length === 0) {
    clearInterval(interval);
  } else {
    // вывод сообщения
    console.log(messages.shift());
  }
}, 3000);
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 17.06.2014 в 16:37.
Ответить с цитированием
  #4 (permalink)  
Старый 22.06.2014, 16:05
Новичок на форуме
Отправить личное сообщение для SinteC Посмотреть профиль Найти все сообщения от SinteC
 
Регистрация: 17.06.2014
Сообщений: 8

devote, твой код начнет работать после запуска спустя 3 секунды, а нужно, чтобы при вызове функции сразу выводилось первое сообщение, а последующие уже с интервалом. В этом и суть, что без велосипеда, видимо, не реализовать(
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2014, 16:15
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ну добавь "console.log(messages.shift());" перед установкой таймера. Либо через setTimeout с рекурсией.
Ответить с цитированием
  #6 (permalink)  
Старый 23.06.2014, 08:48
Новичок на форуме
Отправить личное сообщение для SinteC Посмотреть профиль Найти все сообщения от SinteC
 
Регистрация: 17.06.2014
Сообщений: 8

Все, всем спасибо, разобрался.
Ответить с цитированием
  #7 (permalink)  
Старый 23.06.2014, 09:58
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Erolast
Ну добавь "console.log(messages.shift());"
в старых IE это чревато ошибкой, если не запущена консоль.
Ответить с цитированием
  #8 (permalink)  
Старый 23.06.2014, 10:11
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от BETEPAH
в старых IE это чревато ошибкой, если не запущена консоль.
это же вывод в консоль для примера... явно он будет текст выводить не в консоль.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #9 (permalink)  
Старый 23.06.2014, 10:19
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

devote,
сорри, не проснулся еще
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод информации из массива в таблицу ArtemGavrilenko Элементы интерфейса 7 29.06.2017 02:38
вывод элемента массива по id cyklop_77 Angular.js 4 14.09.2013 22:59
Вывод случайных элементов из массива в таблицу Narm0 Общие вопросы Javascript 10 06.08.2013 12:39
поочередный вывод элементов массива seosovest Общие вопросы Javascript 7 09.04.2012 10:47
Скрипты отправка сообщений между пользователями, скрипт вывод текста на страницу.... Rapala Элементы интерфейса 2 12.01.2011 17:27