node.js接收异步任务结果的两种方法----callback和事件广播

Posted saintdingtheGreat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js接收异步任务结果的两种方法----callback和事件广播相关的知识,希望对你有一定的参考价值。

  • 事件广播 发送方调用emit方法,接收方调用on方法,无论发送方或是接收方,都会工作在一个频道
声明了一个模块,用于读取mime.json中的记录
var fs = require(fs);
var events = require(events);
var eventemitter = new events.EventEmitter();
var getmimetype = function (path,eventemitter,suffix) {
    fs.readFile(path,function (err,data) {
        if(err){
            console.log(err);
            return false;
        }
        var filedata = JSON.parse(data.toString());
        eventemitter.emit(wenwa,filedata[suffix]);
        //console.log(filedata[suffix])
    })
};
module.exports = getmimetype;
  • 接收方
也就是在另一个文件中调用写好的模块,并声明广播的接收方
var eventer = require(./readfile_events);
var fs = require(fs);
var events = require(events);
var eventemitter = new events.EventEmitter();
eventer(./mime.json,eventemitter,.css);
eventemitter.on(wenwa,function (data) {
    console.log(data)
});
  • 回调函数
//定义模块
var
fs = require(fs); var gettype = function (suffix,callback) { fs.readFile(./mime.json,function (err,data) { if(err){ console.log(err); return false; } var filedata = JSON.parse(data.toString()); //console.log(filedata[suffix]); callback(filedata[suffix]) }) }; module.exports = gettype;
//调用模块
var
gettype = require(./readfilecallback.js); var fs = require(fs); var events = require(events); var eventemitter = new events.EventEmitter(); gettype(.323,mycallback); function mycallback(data) { console.log(data) }

 

以上是关于node.js接收异步任务结果的两种方法----callback和事件广播的主要内容,如果未能解决你的问题,请参考以下文章

node.js异步回调

「高并发」两种异步模型与深度解析Future接口-

node.js 可以编写一个方法,以便可以两种方式调用它 - 即使用回调或异步/等待?

异步调用与回调机制

35 并行/发 同/异步 非/ 阻塞 进程的两种开启方式, 进程的常用方法及属性

Node.js Express 中的异步代码