gpt4 book ai didi

javascript - Node Js 实际上是异步的吗?

转载 作者:行者123 更新时间:2023-11-30 07:57:02 24 4
gpt4 key购买 nike

我看到这篇文章:https://www.codementor.io/nodejs/tutorial/manage-async-nodejs-callback-example-code ,在运行代码后,我确认 nodejs 是异步的。但是我创建了 2 个 js 文件来再次测试 nodejs 的异步特性。

文件 1:callback_example.js

exports.countless = function(callback){
var date = new Date();
console.log("*" + date.getSeconds());
var x = 0;
for(var i = 1; i <= 1000000000; i++){
x++;
}
callback(x);
date = new Date();
console.log("**" + date.getSeconds());
}

exports.check = function(callback){
var date = new Date();
console.log(date.getSeconds());
callback(123);
date = new Date();
console.log(date.getSeconds());
}

文件 2:call.js

var call = require('./callback_example');

call.countless(function(x){
console.log(x);
});

call.check(function(x){
console.log(x);
});

当我在终端中以 Node 调用 的形式执行 call.js 时,我看到 在 unnominous() 完成后,check() 运行。这意味着nodejs是同步的?为什么?谁能帮我回答一下?非常感谢!

最佳答案

当您调用 call.countless() 时,它正在执行该函数,但是其中没有任何阻塞 I/O。所以Runtime忙着做for循环操作。如果您编写过任何阻塞 I/O 操作,那么您就会看到 NODE JS 的异步特性。

例如,阻塞 I/O 操作:文件读取/写入、超时、数据库操作、Ajax 调用

for 循环完成后,Interpreter 转到第二个函数。

关于javascript - Node Js 实际上是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37366477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com