问题源自业务开发中的一点思考

问题描述

我该如何让当前的 JavaScript 代码暂停1s后再继续执行呢,如果是放在放在其他语言中,那么 sleep(1000) 就可以了,但是 JavaScript 中并没有 sleep() 方法。

解决

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

调用

sleep(1000).then( _ => {
    doSomething()
})

async function run() {
    doSomething()
    await sleep(1000)
    doSomething()
}
run()
function sleep2(delay) {
    let now = new Date().getTime()
    let timeDelay = now + delay
    while (true) {
        if ((new Date().getTime()) > timeDelay) {
            return
        }
    }
}

调用

function run() {
    doSomething()
    sleep2(1000)
    doSomething()
}
run()
Last modification:January 11th, 2021 at 02:48 pm
如果觉得我的文章对你有用,请随意赞赏