Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   не исполнять дальнейший код пока не сработает timeout (https://javascript.ru/forum/misc/45702-ne-ispolnyat-dalnejjshijj-kod-poka-ne-srabotaet-timeout.html)

dannogo 12.03.2014 18:13

не исполнять дальнейший код пока не сработает timeout
 
Добрый день.

Моя задача:
Вывести на экран строку, но не моментально, а по буквам.

Хотелось бы сделать это в цикле с использованием timeout для задержки вывода каждой следующей буквы.

Есть ли в javascript возможность задерживать выполнение дальнейшего кода до срабатывания timeout?

рони 12.03.2014 18:23

dannogo,
а вы без цикла представьте :write:

Vlasenko Fedor 13.03.2014 01:15

И вам хорошего настроения
<div id="data"></div>
    <script>
      (function () {
        var str = 'Привет форум JavaScript',
          len = str.length,
          i = 0,
          tId, runtxt = (function () {
            tId = setInterval(function () {
              data.innerHTML += str[i++];
              if (i == len) clearInterval(tId);
            }, 300);
          }());
      }());
    </script>

dannogo 13.03.2014 09:58

в моем случае setInterval не подойдет. У меня есть план Б. Просто хотел узнать, нет ли возможности задерживать код до срабатывания setTimeout.

Спасибо за ответы

Tim 13.03.2014 12:23

dannogo,
нету. только засунуть его в ф-ю и вызвать по таймауту

NeoN 13.03.2014 17:16

var a = 'word';

function writeWord(a){
	var i = 0;
	function d(i){
		alert(a[i]);
		i++;
		if (i<a.length) setTimeout(function(){d(i)},1000);
	}

	d(i);
}

writeWord(a);


Часовой пояс GMT +3, время: 21:22.