我在理解nodejs将文本写入/添加到文件中的回调方法的调用顺序时遇到问题:
fs.writeFile(path.join(__dirname, '/test', 'hello.txt'), 'Hello ', (err) => {
if (err) throw err;
console.log("1");
fs.appendFile(path.join(__dirname, '/test', 'hello.txt'), 'World!', (err) => {
if (err) throw err;
console.log("2");
});
console.log("3");
});
执行这段代码,我得到输出顺序:1、3、2
但是逻辑调用顺序不是1、2、3吗?还是在appendFile完成执行之前,console.log(“ 3”)不会简单地“等待”?
猜猜我在这里完全错了。
console.log("3");
不会“等待”,因为它不是的回调的一部分appendFile
。只有回调(即console.log("2");
)“等待”appendFile
完成。
您的代码顺序如下:
1
到控制台。1
写入控制台:开始附加“世界!” 到文件现在,将触发2个进程,可能首先执行4个进程:
3
到控制台2
到控制台本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句