2个异步函数可以同时执行吗?例如在下面的代码中,是否有可能执行第一个 setTimeout 中的命令 let xEquals2 = x === 2;
,然后是第二个 setTimeout 中的相同命令,最后是 if block 从第一个 setTimeout 开始。或者为了使问题更简单,下面的代码是否始终打印出数字 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 是 "truly parallel"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48409256/