iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >Node.js中怎么实现异步处理
  • 679
分享到

Node.js中怎么实现异步处理

2024-04-02 19:04:59 679人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关node.js中怎么实现异步处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。异步的“坑”最近一段时间参与开发了一个node.j

这篇文章将为大家详细讲解有关node.js中怎么实现异步处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

异步的“坑”

最近一段时间参与开发了一个node.js后台项目,作为一个PHP开发者,上手项目本身并不难,但是开发的过程却并不顺利,不顺利的主要原因在于思路上没有转变,没有从 同步 的思维转换到 异步 的思维。

所谓 同步 ,就是程序(线程)在一个任务的处理过程中,不会插入处理其他任务,即使遇到io等不占CPU的操作,也会一直等待其结束才会继续往下处理。

所谓 异步 ,就是程序(线程)在一个任务的处理过程中,会插入处理其他任务,如遇到IO操作,当前任务会将程序(线程)的控制权释放给其他任务,等IO操作结果返回后再继续往下处理。

众所周知,Node.js采用的是单线程的异步模型,在具体代码的写法上自然和php等同步模型不一样。在具体项目开发的过程中,各种异步操作相关的关键字层出不穷,如: .then() 、 function* ... yield 、 async...await 等等。为了写一个 类同步 的操作,比如:“在执行完A步骤拿到结果之后再执行B步骤”这么一个简单的需求,却要经过大量的反复调试验证才能解决。究其原因,就是对于这些异步操作的场景和关键字的含义理解不到位,异步操作所提供的选择太多了。

下面就结合代码实例,理一理这些异步操作的参数具体怎么使用。

异步的各种写法

任务说明:项目根目录下有三个文件 Jay.txt 、 Angela.txt 、 Henry.txt ,依次读取这三个文件的内容并打印。

下面使用各种异步处理的方法来完成此任务。

回调函数

ps:下面看下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);
})

关于Node.js中怎么实现异步处理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Node.js中怎么实现异步处理

本文链接: https://www.lsjlt.com/news/65586.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js中怎么实现异步处理
    这篇文章将为大家详细讲解有关Node.js中怎么实现异步处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。异步的“坑”最近一段时间参与开发了一个Node.j...
    99+
    2024-04-02
  • Node.js中如何实现异步处理
    这篇文章主要讲解了“Node.js中如何实现异步处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js中如何实现异步处理”吧!异步的各种写法任务说明:项目根目录下有三个文件&nbs...
    99+
    2023-06-17
  • Node.js异步处理如何实现
    这篇文章主要介绍“Node.js异步处理如何实现”,在日常操作中,相信很多人在Node.js异步处理如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node.js异步处理如何实现”的疑惑有所帮助!接下来...
    99+
    2023-07-04
  • Node.js中怎么使用Hooks实现异步
    本篇文章为大家展示了Node.js中怎么使用Hooks实现异步,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。API使用我总是觉得官方文档过于复杂以及苛刻。这就是为什...
    99+
    2024-04-02
  • Node.js中怎么实现异步流控制
    Node.js中怎么实现异步流控制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.原生JavaScript模式本篇不针对初学...
    99+
    2024-04-02
  • RocketMQ怎么实现请求异步处理
    这篇文章主要介绍“RocketMQ怎么实现请求异步处理”,在日常操作中,相信很多人在RocketMQ怎么实现请求异步处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RocketMQ怎么实现请求异步处理”的疑...
    99+
    2023-06-19
  • JavaScript中怎么处理异步
    JavaScript中怎么处理异步,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、回调函数回调是一个函数被作为一个参数传递到另一个函数里,在...
    99+
    2024-04-02
  • PHP中使用Redis实现异步处理
    随着互联网的发展,Web应用程序的性能和效率成为了关注的焦点。而PHP是一种常用的Web开发语言,Redis则是一款流行的内存数据库,如何将二者结合起来提高Web应用程序的性能和效率就成为了一个重要的问题。Redis是一个非关系型内存数据库...
    99+
    2023-05-16
    PHP redis 异步处理
  • Node.js异步编程有哪些及怎么实现
    今天小编给大家分享一下Node.js异步编程有哪些及怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Node.js 的...
    99+
    2023-07-04
  • C++中怎么实现异常处理
    这篇文章给大家介绍C++中怎么实现异常处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++异常处理程序在函数中查找catch块时,它首先要判断异常发生的位置是否在当前函数(发生异常的那个函数)的一个try块中。是则...
    99+
    2023-06-17
  • Python中怎么实现异常处理
    这篇文章将为大家详细讲解有关Python中怎么实现异常处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。导入必要的模块之后,animal.py使用connect()调用建立到服务器的连接。为...
    99+
    2023-06-17
  • SqlServer中怎么实现异常处理
    SqlServer中怎么实现异常处理,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。SQL Server常见的问题主要是SQL问题造成,常见的主...
    99+
    2024-04-02
  • ajax中怎么实现同步异步
    ajax中怎么实现同步异步,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。$("#btn_saveFWSB"...
    99+
    2024-04-02
  • PHP中如何使用Redis实现异步处理
    这篇“PHP中如何使用Redis实现异步处理”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP中如何使用Redis实现异步...
    99+
    2023-07-06
  • Python中怎么实现同步和异步
    Python中怎么实现同步和异步,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、同步与异步#同步编程(同一时间只能做一件事,做完了才能做下一件事情) ...
    99+
    2023-06-17
  • JavaScript中的异常处理怎么实现
    这篇“JavaScript中的异常处理怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript中的异常处理...
    99+
    2023-06-30
  • Java 异步编程中,如何实现路径响应的异步处理?
    在现代的Web应用程序中,异步处理是非常重要的。这是因为在Web应用程序中,对于某些请求,可能需要进行较长时间的处理,例如处理大量数据或与其他服务进行通信。如果应用程序在这些请求上花费太长时间,将会给用户带来糟糕的体验。因此,异步处理可以...
    99+
    2023-10-31
    异步编程 响应 path
  • Node.js中异步迭代器怎么使用
    这篇文章主要介绍了Node.js中异步迭代器怎么使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是异步迭代器异步迭代器实际上是以前迭代器的异步版本。当我们不知道迭代的值...
    99+
    2023-06-14
  • Node.js异步编程中的callback怎么用
    这篇文章主要介绍“Node.js异步编程中的callback怎么用”,在日常操作中,相信很多人在Node.js异步编程中的callback怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node.js异步...
    99+
    2023-06-17
  • Node.js 事件循环如何处理异步请求
    ...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作