Javascript如何在运行下一行代码之前等待x秒?

时间:2017-10-25 21:21:53

标签: javascript time settimeout delay

我希望能够做出类似的事情:

function testFunction() {
    alert("Test");
}

if (x > y) {
    wait(z);
    testFunction();
}

谢谢!

3 个答案:

答案 0 :(得分:2)

请尝试使用setTimeout函数:

setTimeout(function(){ alert("Hello"); }, 3000);

从这个链接:

https://www.w3schools.com/jsref/met_win_settimeout.asp

因此,对于您的具体用例:

var timeToWait = 3000; // in miliseconds.
function testFunction() {
    alert("Test");
 }

 if (x > y) {
      setTimeout(function(){ testFunction(); }, timeToWait);
  }

希望有所帮助。

答案 1 :(得分:1)

现在可以很好地完成承诺:

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
  console.log('Taking a break...');
  await sleep(2000);
  console.log('Two second later');
}

demo();

答案 2 :(得分:0)

您必须将代码放在您提供给setTimeout的回调函数中:

function stateChange(newState) {
    setTimeout(function () {
        if (newState == -1) {
            alert('VIDEO HAS STOPPED');
        }
    }, 5000);
}

从这个问题:Javascript - Wait 5 seconds before executing next line

相关问题