首先,很抱歉,我的英语不好,因此我用Google翻译翻译了一个问题。
首先看下面的代码。
const log1 = () => {
setTimeout(() => console.log(1), 0)
}
const log2 = () => {
console.log(2)
}
const start = () => {
log1()
log2()
}
如果我在上面的代码中运行start函数,则我知道执行console.log(1)
的函数已排队到任务队列中,并且console.log(2)
首先在调用堆栈中执行,这将产生以下结果:
2
1
我想更改执行顺序,以便首先执行log1函数的console.log(1)
并显示以下结果。
1
2
但是我假设不能修改log1和log2函数的内部实现。 (用于外部库等)
所以我以以下方式对其进行了修改。
const start = () => {
log1()
setTimeout(log2, 0)
}
我如上所述修改了start函数以获得所需的结果,但是我不想重载setTimeout函数。
我想知道一种更好的方法,无需使用setTimeout函数就可以将任务排入任务队列。
如果您知道一个好方法,请帮忙!
谢谢!