JavaScript怎么使用Promise处理回调地狱与async await修饰符


本篇内容主要讲解“JavaScript怎么使用Promise处理回调地狱与asyncawait修饰符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么使用Promise处理回调地狱与asyncawait修饰符”吧!Promise能够处理异步程序。JS中或node中,都大量的使用了回调函数进行异步操作,而异步操作什么时候返回结果是不可控的,如果我们希望几个异步请求按照顺序来执行,那么就需要将这些异步操作嵌套起来,嵌套的层数特别多,就会形成回调地狱 或者叫做 横向金字塔。案例:有a.txt、b.txt、c.txt三个文件,使用fs模板按照顺序来读取里面的内容,代码:案例中,循环嵌套的代码越来越多,这就是 地狱回调Promise对象可以解决 回调地狱 的问题Promise是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理更强大Promise可以理解为是一个容器,里面可以编写异步程序的代码从语法上说,Promise是一个对象,使用的时候需要 newPromise是“承诺”的意思,实例中,它里面的异步操作就相当于一个承诺,而承诺就会有两种结果,要么完成了承诺的内容,要么失败。所以,使用Promise,分为两大部分,首先是有一个承诺(异步操作),然后再兑现结果。第一部分:定义”承诺”第二部分:获取”承诺”的结果三种状态最初状态:pending,等待中,此时的promise结果为undefined当resolve (value) 调用时,达到最终状态之一:fulfilled,(成功的)完成,此时可以获取结果value当reject (error) 调用时,达到最终状态之一:rejected,失败,此时可以获取错误信息error当达到最终的fulfil免费云主机域名led 或 rejected 时,promise的状态就不会再改变了。特点当调用 resolve的时候,Promise 将到达最终的状态。 达到最终状态之后,Promise的状态就不会再改变了。多次调用resolve函数,只有第一次有效,其他的调用都无效。then方法的链式调用前一个then里面返回的字符串,会被下一个then方法接收到。但是没有意义;前一个then里面返回的Promise对象,并且调用resolve的时候传递了数据数据会被下一个then接收到前一个then里面如果没有调用resolve,则后续的then不会接收到任何值catch方法可以统一获取到 错误信息封装按顺序异步读取文件的函数使用第三方模块读取文件npm init – ynpm i then-fs 安装then-fs模块then-fs 将 内置的fs模块封装了,读取文件后,返回 Promise 对象,省去了我们自己封装ES6 — ES2015async 和 await 是 ES2017 中提出来的。异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题。从最早的回调函数,到 Promise 对象,再到 Generator 函数,每次都有所改进,但又让人觉得不彻底。它们都有额外的复杂性,都需要理解抽象的底层运行机制。异步I/O不就是读取一个文件吗,干嘛要搞得这么复杂?异步编程的最高境界,就是根本不用关心它是不是异步。async 函数就是隧道尽头的亮光,很多人认为它是异步操作的终极解决方案。ES2017 提供了async和await关键字。await和async关键词能够将异步请求的结果以返回值的方式返回给我们。async 用于修饰一个 functionasync 修饰的函数,总是返回一个 Promise 对象函数内的返回值,将自动包装在 resolved 的 promise 中await 只能出现在 async 函数内await 让 JS 引擎等待直到promise完成并返回结果语法:let value = await promise对象; // 要先等待promise对象执行完毕,才能得到结果由于await需要等待promise执行完毕,所以await会暂停函数的执行,但不会影响其他同步任务对于错误处理,可以选择在async函数后面使用 .catch() 或 在promise对象后使用 .catch()错误处理前提是得到几个Promise对象,代码如下:获取Promise的结果,可以通过then获取。也可以通过async和await获取。如果使用then获取结果,那么错误如何处理?在链式调用的尾端,加一个catch方法即可如何使用async和await获取结果,最好的错误处理方案,就是使用 try...catch...到此,相信大家对“JavaScript怎么使用Promise处理回调地狱与asyncawait修饰符”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Java获取随机数的方法有哪些

这篇文章主要介绍“Java获取随机数的方法有哪些”的相关知识,小编通过实免费云主机域名际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java获取随机数的方法有哪些”文章能帮助大家解决问题。方法1(数据类型)(最小值+Math.random()…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 03/21 22:00
Next 03/21 22:01

相关推荐