Nodejs 处理异步(获取异步数据并处理)的方法

Posted zhcgis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs 处理异步(获取异步数据并处理)的方法相关的知识,希望对你有一定的参考价值。

方法1. 回调函数方式

将异步方法如readFile封装到一个自定义函数中,通过将异步方法得到的结果传给自定义方法的回调函数参数。具体如下(以fs模块的readFile方法为例):

//封装
var func = function(filePath,callback){
    fs.readFile(filePath, function(err, data){
        if(err){
            return false;
        }
        callback(data);
    }) 
}

//调用
func(‘./a.txt‘, function(res){
    //处理异步方法返回得到的数据
    console.log(res);
})

 方法2. 事件驱动方式

使用node events模块,利用其EventEmitter对象广播和接收广播的方式传输异步方法返回的结果。具体如下(仍以fs模块的readFile异步方法为例):

var events = require(‘events‘);

var EventEmitter = new events.EventEmitter();
fs.readFile(‘./a.txt‘, function(err, data){
    //数据读取后发出readData信号的广播,并将数据data传出
    EventEmitter.emit(‘readData‘, data);
})

//监听readData信号,并对监听到的数据做处理(也可先定义监听,再做异步的读取操作)
EventEmitter.on(‘readData‘, function(res){
    //处理异步读取得到的数据
    console.log(res);
})

 

以上是关于Nodejs 处理异步(获取异步数据并处理)的方法的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript异步处理问题,循环处理异步任务,并拿到数据,Nodejs循环异步任务接口处理

nodejs-在函数内执行多个异步调用的最佳方法?

nodejs 数据库查询异步处理

nodejs 异步应该如何处理

如何优雅的处理Nodejs中的异步回调

Redis + NodeJS 实现一个能处理海量数据的异步任务队列系统