node.js 关于return

A语句:
var data = fs.readFile("./test.txt");
B语句:
fs.readFile("./test.txt",function(err,data){

})

因为fs模块的readFile方法是异步方法,事实上 node中的fs模块,MongoDB模块基本上都是异步方法,一定要记住,异步函数不能通过return返回,不能通过等号接收,必须通过回调函数传实参的模式来传输数据。
因为用等号接收,上面的等号会执行语句,下面的等号也会执行语句,这条语句你不知道什么时候执行完毕,你执行完毕才要data改变,但是他已经执行后面的语句了,来不及管data了,
用回调函数:fs.readFile先读,把后面的语句先做了,发现后面也有断点(I/o事件),如果在执行异步的事件,不会立即执行回调函数,遇到一个i/o断点,就会执行里面的语句。
 

猜你喜欢

转载自blog.csdn.net/qq_38845858/article/details/84204202
今日推荐