如何在不使用setTimeout函数的情况下将任务排入任务队列?

时间:2019-10-04 05:54:11

标签: javascript event-loop javascript-engine

首先,很抱歉,我的英语不好,因此我用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函数就可以将任务排入任务队列。

如果您知道一个好方法,请帮忙!

谢谢!

0 个答案:

没有答案