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()?
您可以使用
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()