javascript - javascript 是 "truly parallel"吗?

标签 javascript node.js asynchronous parallel-processing settimeout

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/

相关文章:

javascript - Joomla异步脚本加载jdoc头

node.js - Cckeditor 在 Node.js 网页中的使用和集成

javascript - 在 node.js 中重新创建 MCRYPT_RIJNDAEL_128

javascript - 内部 html 被 javascript 更改后自动调整 div 高度

javascript - 为什么 Flask 中的 URL 重定向在控制台中有效,但现在在实际的 Web 应用程序中有效?

node.js - 应用程序所有者获得错误的访问 token

javascript - 如何在 Meteor 中记录出站 HTTP 请求?

python - Quamash 和 PyQt5 - 进程结束时出现额外窗口

spring - Spring 中的 Hibernate Multi-Tenancy 和异步执行(通过 @Async、@Scheduled 等)

javascript - 通过 Telegram Bot 发送图像