@SeniorDmitry

Как остановить выполнения скрипта до выполнения setTimeout?

Как остановить выполнение скрипта пока не выполнится setTimeout

console.log('1');
setTimeout("console.log('2')", 2000);
console.log('3');


как сделать , чтобы выводилось в консоль 1,2,3 ,а не 1,3,2 ?
  • Вопрос задан
  • 444 просмотра
Пригласить эксперта
Ответы на вопрос 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
обычными методами никак, но:
console.log(1);
setTimeout(function() {
  console.log(2);
  console.log(3);
}, 1000);

function delay(timeout) {
  return new Promise(function(resolve) {
    setTimeout(resolve, timeout || 0);
  });
}

console.log(1);
delay(1000).then(function() {
  console.log(2);
}).then(function() {
  console.log(3);
});


babel with preset-stage-3:
function delay(timeout) {
  return new Promise(function(resolve) {
    setTimeout(resolve, timeout || 0);
  });
}

async function log123() {
  console.log(1);
  await delay(1000);
  console.log(2);
  console.log(3);
}

async function log1to10() {
  for(var i = 1; i <= 10; i++) {
    console.log(i);
    await delay(i * 1000);
  }
}

log123().then(function() {
  return log1to10();
});
Ответ написан
Комментировать
@IceJOKER
Web/Android developer
Еще один setTimeout с таймер выше предыдущего или переписать так:
console.log('1');

setTimeout(function(){
console.log('2');
afterTimeout();
}, 2000);

function afterTimeout(){
  console.log('3');
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы