我对nodejs线程有一些疑惑.
据我所知,nodejs是在单个线程中运行.如果调用了异步函数,nodejs则会创建一个新线程来运行这些异步代码.异步代码完成后.event loop将获得异步结果并在另一个新线程中触发回调函数.
为了测试,我进行了以下代码测试:
var fs = require("fs");
fs.readFile('package.json','utf-8', function (err, data) {
if(err)
console.log(err)
else
console.log(data);
});
console.log("before loop");
while(true);
console.log("after loop");
Run Code Online (Sandbox Code Playgroud)
我的预期结果是:
在循环之前
- - package.json内容 - -
实际得到:
在循环之前
在某些地方我可能错了.
问题:
while(true)阻止readFile()或阻止它的回调函数?