标签:封装 请求 nbsp span class fun 方法 nod 应用
将readFile封装成一个方法(解决异步问题)
原因:因为node.js是非阻塞I/O,所以是异步的,读文件是I/O请求,所以会被抛出,等所有的非I/O请求都完成后才会进行
有异步问题的代码:
var fs = require("fs"); function fnReadFile(file){ fs.readFile(file, function(err, data){ return data; }); } console.log(fnReadFile("hei.txt"));//输出undefined 原因fs.readFile方法是异步的
解决 方法一:回调函数
var fs = require("fs"); function fnReadFile(file, callback){ fs.readFile(file, function(err, data){ callback(data.toString()); }); } fnReadFile("hei.txt", function(res){ console.log("读取的数据是:" + res); });
方法二:events模块 监听on 广播emit
var events = require("events"); var fs = require("fs"); var myEvent = new events(); myEvent.on("showData", function(str){ console.log("读取的数据是:" + str); }); function fnReadFile(file){ fs.readFile(file, function(err, data){ myEvent.emit("showData", data); }); } fnReadFile("hei.txt");
标签:封装 请求 nbsp span class fun 方法 nod 应用
原文地址:https://www.cnblogs.com/luowenshuai/p/9293691.html