可以同时执行2个异步功能吗?例如,在下面的代码中,是否有可能执行第一个setTimeout的命令let xEquals2 = x === 2;,然后执行第二个setTimeout的相同命令,最后执行第一个setTimeout的if块。为了使问题更简单,下面的代码是否总是将数字2打印两次,还是有可能将2和3或3和3打印出来?

let x = 1;

setTimeout(() => {
    let xEquals2 = x === 2;
    if (!xEquals2) {
        x++;
    }
    console.log(x);
}, 1000);

setTimeout(() => {
    let xEquals2 = x === 2;
    if (!xEquals2) {
        x++;
    }
    console.log(x);
}, 1000);

最佳答案

JavaScript使用事件循环,它不同于其他平台具有的线程。因此,第一个回调将首先执行,然后第二个执行,因此您的结果将是2、2。

关于javascript - JavaScript是“真正并行”的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48409256/

10-12 22:14