Javascript Подождите - PullRequest
       10

Javascript Подождите

0 голосов
/ 21 ноября 2018

Я пытаюсь заставить сценарий остановиться на 1 секунду, затем продолжить выполнение сценария, но я не могу понять, как это сделать.Вот мой код:

function hello() {
  alert("Hi!")
  //I need about a 1 seconed pause here;
  alert("Hi again!");
}
<button onclick="hello()">Say Hi!</button>

Я уже попробовал следующее:

function hello() {
  alert("Hi!")
  setTimeout(myFunction, 3000)//I thought this would wait, run the function, then return to the function hello()...
  alert("Hi again!")
}
function myFunction {
  a = document.getElementById("blank")
  a.innerHTML = "wait complete"
}
<button onclick="hello()">Say Hi!</button>
<div id="blank">
...
</div>

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Идиома, которая становится распространенной как асинхронная / ожидающая, доступна в браузерах, она делает асинхронную функцию и ждет функции pause(), которая возвращает обещание:

let pause = (time) => new Promise(resolve => setTimeout(resolve, time))

async function hello() {
  console.log("Hi!")
  await pause(2000)
  console.log("Hi again!");
}
<button onclick="hello()">Say Hi!</button>
0 голосов
/ 21 ноября 2018

Вы были на правильном пути с функцией setTimeout:

function hello() {
  alert("Hi!")
  setTimeout(function() {
    alert("Hi again!");
  }, 1000)

}
<button onclick="hello()">Say Hi!</button>
...