nodejs readfile是同步的还是异步的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs readfile是同步的还是异步的相关的知识,希望对你有一定的参考价值。
参考技术A 你好,js是同步执行的,一个简单示例解释, for(var i = 0;i < 10;i++) console.log(i)for(var i = 10;i < 20;i++) console.log(i)以上两个for循环,第一个打印1-10,第二个打印10-20,结果是1-20按顺序输出 js中代码是同步执行的,只有在ajax的...nodejs是同步还是异步
node里几乎所有用到回调函数的地方,都是异步的,回调函数后面的代码很可能比回调函数中的代码后先执行,特别是数据库操作。当然,node也提供了同步版本的函数,例如文件操作,fs.readFileSync()是fs.readFile()的同步版本。那么问题来了,forEach()是不是异步的呢?按理说,没有加Sync,应该是异步的呀。
复制代码 代码如下:
var arr = [\'a\', \'b\', \'c\'];
var str = \'123\';
arr.forEach(function(item)
str += item;
while (true) ; //用一个死循环,卡死它~~
);
console.log(str);
运行上面的代码,结果它就这么卡死了,没有任何输出。。
所以说,node里的forEach()是同步的!!
第一次用node的时候,没有考虑过这个问题,按同步的写了,写突然想到,测试后虚惊一场,以为以前的代码都写错了。 参考技术A
既可以同步也可以异步
同步:
var fs = require("fs");var data = fs.readFileSync('input.txt');console.log(data.toString());console.log("程序执行结束!");异步:
var fs = require("fs");fs.readFile('input.txt', function (err, data)if (err) return console.error(err);
console.log(data.toString()););console.log("程序执行结束!"); 参考技术B 很经典的异步
以上是关于nodejs readfile是同步的还是异步的的主要内容,如果未能解决你的问题,请参考以下文章