Ответ 1
Javascript не является потоковым, поэтому "ожидание" заморозит всю страницу (и, вероятно, приведет к тому, что браузер полностью перестанет работать с script).
Чтобы конкретно решить вашу проблему, вы должны удалить скобки после donothing
в своем вызове setTimeout
и сделать waitsecs
число, а не строку:
console.log('before');
setTimeout(donothing,500); // run donothing after 0.5 seconds
console.log('after');
Но это не остановит выполнение; "after" будет регистрироваться до запуска вашей функции.
Чтобы правильно подождать, вы можете использовать анонимные функции:
console.log('before');
setTimeout(function(){
console.log('after');
},500);
Все ваши переменные все равно будут находиться в разделе "после". Вы не должны их связывать - если вам нужно, вам нужно посмотреть, как вы структурируете программу. Также вы можете использовать setInterval
/clearInterval
, если это необходимо для цикла.