【发布时间】:2015-08-13 02:30:17
【问题描述】:
"use strict"
const
fs = require('fs'),
stream = fs.createReadStream("file.txt"),
timeout = 0;
stream.on('data', function() {
console.log("File Read");
});
setTimeout(function(){
console.log("setTimeout : " + timeout);
}, timeout);
我正在学习 node.js / javascript,我想知道为什么这个程序会返回
setTimeout : 0
File Read
而不是相反。
如果我错了,请纠正我,但在 javascript 中,回调队列是先进先出,先堆叠 stream,然后先出?
我认为由于nodejs 的非阻塞性质,两个回调都“并行”运行,setTimeout 首先完成并返回(例如,1000 毫秒的超时会切换结果。)
【问题讨论】:
标签: javascript node.js callback event-loop