如果需要很长时间,如何在Javascript中设置稍后执行的函数?

问题描述 投票:0回答:1
function wait() {
    let a = Date.now()
    while (Date.now() - a < 3000) {
        //loop
    }
    console.log('waiting ends...')
}
function start(){
    console.log('starts...')
    wait()
}
function end(){
    console.log('ends...')
}

start()
end()

如何设置 wait() 异步执行,从而导致输出“开始...,结束...,等待结束...”而不将 setTimeout 函数应用于 wait()?

javascript asynchronous
1个回答
0
投票

您可以使用

queueMicrotask()
将函数作为微任务执行(与立即解决承诺相同):

function wait() {
    let a = Date.now()
    while (Date.now() - a < 3000) {
        //loop
    }
    console.log('waiting ends...')
}
function start(){
    console.log('starts...')
    queueMicrotask(wait);
}
function end(){
    console.log('ends...')
}

start()
end()

© www.soinside.com 2019 - 2024. All rights reserved.