广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JS异步编程有哪些方案
  • 409
分享到

JS异步编程有哪些方案

2024-04-02 19:04:59 409人浏览 安东尼
摘要

这篇文章主要讲解了“js异步编程有哪些方案”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS异步编程有哪些方案”吧!关于 JS 单线程、EventLoop

这篇文章主要讲解了“js异步编程有哪些方案”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS异步编程有哪些方案”吧!

关于 JS 单线程、EventLoop 以及异步 I/O  这些底层的特性,我们之前做过了详细的拆解,不在赘述。在探究了底层机制之后,我们还需要对代码的组织方式有所理解,这是离我们最日常开发最接近的部分,异步代码的组织方式直接决定了开发和维护的效率,其重要性也不可小觑。尽管底层机制没变,但异步代码的组织方式却随着  ES 标准的发展,一步步发生了巨大的变革。接着让我们来一探究竟吧!

回调函数时代

相信很多 nodejs 的初学者都或多或少踩过这样的坑,node 中很多原生的 api 就是诸如这样的:

fs.readFile('xxx', (err, data) => {  });

典型的高阶函数,将回调函数作为函数参数传给了readFile。但久而久之,就会发现,这种传入回调的方式也存在大坑, 比如下面这样:

fs.readFile('1.JSON', (err, data) => {     fs.readFile('2.json', (err, data) => {         fs.readFile('3.json', (err, data) => {             fs.readFile('4.json', (err, data) => {              });         });     }); });

回调当中嵌套回调,也称回调地狱。这种代码的可读性和可维护性都是非常差的,因为嵌套的层级太多。而且还有一个严重的问题,就是每次任务可能会失败,需要在回调里面对每个任务的失败情况进行处理,增加了代码的混乱程度。

Promise 时代

es6 中新增的 Promise 就很好了解决了回调地狱的问题,同时了合并了错误处理。写出来的代码类似于下面这样:

readFilePromise('1.json').then(data => {     return readFilePromise('2.json') }).then(data => {     return readFilePromise('3.json') }).then(data => {     return readFilePromise('4.json') });

以链式调用的方式避免了大量的嵌套,也符合人的线性思维方式,大大方便了异步编程。

co + Generator 方式

利用协程完成 Generator 函数,用 co 库让代码依次执行完,同时以同步的方式书写,也让异步操作按顺序执行。

co(function* () {   const r1 = yield readFilePromise('1.json');   const r2 = yield readFilePromise('2.json');   const r3 = yield readFilePromise('3.json');   const r4 = yield readFilePromise('4.json'); })

async + await方式

这是 ES7 中新增的关键字,凡是加上 async 的函数都默认返回一个 Promise 对象,而更重要的是 async + await  也能让异步代码以同步的方式来书写,而不需要借助第三方库的支持。

const readFileAsync = async function () {   const f1 = await readFilePromise('1.json')   const f2 = await readFilePromise('2.json')   const f3 = await readFilePromise('3.json')   const f4 = await readFilePromise('4.json') }

这四种经典的异步编程方式就简单回顾完了,由于是鸟瞰大局,我觉得知道是什么比了解细节要重要,  因此也没有展开。

感谢各位的阅读,以上就是“JS异步编程有哪些方案”的内容了,经过本文的学习后,相信大家对JS异步编程有哪些方案这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: JS异步编程有哪些方案

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

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

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

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

下载Word文档
猜你喜欢
  • JS异步编程有哪些方案
    这篇文章主要讲解了“JS异步编程有哪些方案”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS异步编程有哪些方案”吧!关于 JS 单线程、EventLoop ...
    99+
    2022-10-19
  • JS异步编程方案有哪些
    本篇内容主要讲解“JS异步编程方案有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS异步编程方案有哪些”吧!一、同步与异步我们可以通俗理解为异步就是一个任...
    99+
    2022-10-19
  • javascript异步编程有哪些方式
    这篇文章主要为大家展示了“javascript异步编程有哪些方式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript异步编程有哪些方式”这篇文章吧...
    99+
    2022-10-19
  • java异步编程有哪些方式
    本篇内容介绍了“java异步编程有哪些方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么需要异步?操作系统可以看作是个虚拟机(VM),...
    99+
    2023-06-15
  • JS异步编程方法的6种方案总结
    目录前言:一、回调函数二、事件监听三、发布/订阅四、Promises对象五、生成器函数 Generator/yield六、async/await 函数的实现总结:前言: javasc...
    99+
    2023-01-31
    js异步编程方法有哪些 js 异步方法 js异步机制
  • JavaScript异步解决方案有哪些
    这篇文章主要介绍“JavaScript异步解决方案有哪些”,在日常操作中,相信很多人在JavaScript异步解决方案有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript异步解决方案有哪些...
    99+
    2023-07-05
  • web中异步编程的方式有哪些
    本篇内容主要讲解“web中异步编程的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web中异步编程的方式有哪些”吧!回调函数因为 f1 是一个需要一定...
    99+
    2022-10-19
  • java异步编程的实现方式有哪些
    这篇文章主要介绍“java异步编程的实现方式有哪些”,在日常操作中,相信很多人在java异步编程的实现方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java异步编程的实现方式有哪些”的疑惑有所帮助!...
    99+
    2023-07-05
  • Java异步非阻塞编程的方式有哪些
    这篇文章主要讲解了“Java异步非阻塞编程的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java异步非阻塞编程的方式有哪些”吧!1 服务端执行,最简单的同步调用方式:缺陷:服务端...
    99+
    2023-06-20
  • Java异步编程API的打包方式有哪些?
    Java异步编程是现代软件开发中非常重要的一部分,它可以帮助我们提高程序的性能和响应速度。在Java中,异步编程API有很多种不同的打包方式,本文将为您介绍其中几种常见的打包方式,并附上相应的演示代码。 CompletableFuture...
    99+
    2023-08-28
    异步编程 api 打包
  • javascript中实现异步编程的方法有哪些
    javascript中实现异步编程的方法有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。javascript异步编程的4种方法:1、回调函数,这是异步编程最...
    99+
    2023-06-14
  • Java和Bash:缓存的异步编程方式有哪些?
    在软件开发领域中,缓存是一种非常重要的技术。缓存可以提高程序的性能,减少对于后端服务的访问次数,从而缩短响应时间,提高用户体验。但是,缓存的使用也带来了一些问题,比如缓存的一致性、缓存的更新和失效等等。为了解决这些问题,我们需要使用异步编...
    99+
    2023-06-28
    bash 缓存 异步编程
  • PHP编程中常用的异步编程算法有哪些?
    随着互联网技术的不断发展,Web应用程序对并发性和响应性的需求越来越高。异步编程成为了一种解决方案,因为它可以充分利用现代计算机的多核心和并行处理能力,提高Web应用程序的性能和响应速度。在PHP编程中,异步编程也变得越来越重要。本文将介...
    99+
    2023-10-29
    编程算法 api 异步编程
  • Python异步编程:Linux下有哪些IDE支持?
    Python是一种高级编程语言,它的代码简洁易读,适合快速开发。近年来,Python异步编程也成为了热门话题。Python异步编程能够充分利用计算机资源,提高程序运行效率,可以用于网络编程、爬虫、数据分析等领域。本文将介绍Python异步...
    99+
    2023-09-02
    异步编程 linux ide
  • Node.js异步编程有哪些及怎么实现
    今天小编给大家分享一下Node.js异步编程有哪些及怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Node.js 的...
    99+
    2023-07-04
  • 异步编程中索引重定向的实现方式有哪些?
    异步编程是现代编程语言中的热门话题,它可以提高应用程序的性能和响应能力。但是,异步编程也带来了一些问题,其中之一就是索引重定向。当我们在执行异步操作时,可能会需要对一个索引进行操作,但是由于异步操作的特性,索引可能会在操作完成前发生变化,...
    99+
    2023-11-13
    索引 重定向 异步编程
  • ASP重定向日志的异步编程实现方法有哪些?
    在ASP.NET中,重定向是一种非常常见的操作,它通常在用户提交表单或者进行特定操作时,将用户重定向到另一个页面。但是,在重定向操作中,我们也需要记录一些日志信息,例如用户访问的路径、访问时间、用户IP等等信息,这些信息对于后期的数据分析...
    99+
    2023-08-10
    重定向 日志 异步编程
  • Python 异步编程与 JavaScript: 有哪些相似之处?
    在当今的互联网时代,异步编程已经成为了一种非常流行的编程方式。 Python 异步编程和 JavaScript 异步编程都有其独特的优点,但它们之间也有很多相似之处。在本文中,我们将探讨 Python 异步编程与 JavaScript 异...
    99+
    2023-10-30
    异步编程 unix javascript
  • Linux编程算法与Python异步编程到底有哪些联系?
    在当前科技发展的时代,人工智能、云计算、大数据等领域的快速发展,对软件开发提出了更高的要求,其中编程算法和异步编程成为了开发者熟悉的话题。本文将讨论Linux编程算法与Python异步编程的联系,并通过演示代码来展示它们的共性。 Linu...
    99+
    2023-09-22
    异步编程 linux 编程算法
  • 文件操作:PHP和NumPy的异步编程实现方式有哪些?
    在当今的计算机科学领域中,异步编程已经成为一个非常重要的话题。异步编程是一种编程方式,它允许程序在等待某些操作完成的同时,可以继续执行其他任务。这种编程方式可以提高程序的并发性和响应速度,特别是在文件操作等I/O密集型任务中。在本文中,我...
    99+
    2023-10-05
    numpy 异步编程 文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作