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

更新日期: 2018-12-25阅读量: 1435标签: 异步

方法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);
})


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: https://www.fly63.com/article/detial/1695

Js异步编程async/await 函数

提起异步编程,大家可能会想到事件监听、回调函数、发布订阅、Promise 对象、Generator 函数、async 函数等,本篇主要讲解的是 async 函数,很多人认为它是异步编程的终极解决方案。

如何在Javascript中对数组的遍历使用异步函数

forEach 函数与 map 相似,但是它不返回结果,而是为每个元素运行该函数并丢弃结果。 实际上,重要的部分是调用函数的副作用。例如,将每个元素同步打印到控制台

浅析JavaScript异步

一直以来都知道JavaScript是一门单线程语言,在笔试过程中不断的遇到一些输出结果的问题,考量的是对异步编程掌握情况。一般被问到异步的时候脑子里第一反应就是Ajax,setTimseout...这些东西

在现代JavaScript中编写异步任务

在本文中,我们将探讨过去围绕异步执行的JavaScript的演变以及它如何改变我们编写和读取代码的方式。我们将从Web开发的开始,一直到现代异步模式示例

前端异步是什么?哪些情况下会发生异步?

这里就不拿官方的解释来解答了,只以个人理解来回答问题,轻喷。我们知道JavaScript是单线程的,不像java等语言是多线程的,所以一般情况下,js代码是一行一行的执行的。但是某些时候需要用异步来提升性能

NodeJs中的异步

这篇文章主要讨论NodeJs中的异步问题。使用NodeJs编写进程也一年多了,在公司实习的时候,公司两个项目的后台都是我负责使用NodeJs和Sails框架编写的。工作模式主要是我在服务器端提供RESTful接口

JavaScript 异步编程史

早期的 Web 应用中,与后台进行交互时,需要进行 form 表单的提交,然后在页面刷新后给用户反馈结果。在页面刷新过程中,后台会重新返回一段 HTML 代码,这段 HTML 中的大部分内容与之前页面基本相同,这势必造成了流量的浪费

理解Javascript的异步

Javascript是单线程的编程语言,单线程就是说同一时间只能干一件事。放到编程语言上来说,就是说Javascript引擎(执行Javascript代码的虚拟机)同一时间只能执行一条语句。单线程语言的好处是你只管写不用担心并发问题。

ES 新特性、异步、TypeScript

for 循环时是使用 var 定义循环变量 i (存在变量提升),然后依次为 a 数组元素赋值为一个函数,函数内打印 i;循环结束后调用 a[6]() ,相当于在全局环境下打印 i,而此时 i 已经变为 10。

EventProxy的使用 - 解决异步回调地狱

最近在看node社区的nodeclub源码,看到一个玩意EventProxy,这里记录一下基本语法,EventProxy 可以理解为一个基于事件机制对复杂的业务逻辑进行解耦的工具,可以解决javascript异步回调地狱问题的工具

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!