node.js中events模块应用
Posted 黑熊君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js中events模块应用相关的知识,希望对你有一定的参考价值。
将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");
以上是关于node.js中events模块应用的主要内容,如果未能解决你的问题,请参考以下文章