Promise 学习

网友投稿 245 2022-09-25

Promise 学习

Promise 学习

回调地狱

什么是回调地狱

回调地狱的缺点

代码耦合性太强,牵一发而动全身,难以维护。大量冗余代码相互嵌套,代码的可读性和可复用性变差。

如何解决回调地狱问题

为了解决回调地狱的问题,ES6中新增了 Promise的概念。

Promise 的概念

Promise 是一个构造函数。我们可以创建Promise的实例​​const p = new Promise()​​ new出来的Promise实例对象,代表一个异步操作。Promise.prototype 上包含一个 ​​.then()​​ 方法。每一次​​new Promise()​​ 构造函数得到的实例对象,都可以通过原型链的方式访问到 ​​.then()​​ 方法,例如 ​​p.then()​​。.then() 方法用来预先指定成功和失败的回调函数。 p.then(成功的回调函数,失败的回调函数) p.then(result => {} , error => {} ) 调用 ​​.then()​​ 的时候,成功的回调函数是必须填写的,但是失败的回调函数是可以选择的。

基于Promise按顺序读取文件内容

就是说要去请求三个文件,依次是文件一、文件二、文件三。但是不能保证文件的获取顺序,如果一次嵌套执行,就造成了回调地狱,所以呢,那么promise就派上用场了。

.then() 方法的特性

如果上一个 ​​.then()​​​ 方法中返回了一个新的​​Promise​​​实例对象,则可以通过下一个 ​​.then()​​​ 继续进行处理,通过 ​​.then()​​ 方法的链式调用,就解决了回调地域的问题。

Promise支持链式调用,从而解决回调地狱的问题:

说明:本文中 thenFs 是一个读取文件插件,返回的是一个 Promise 实例

通过 .catch 捕获错误

Promise.all()

Promise.race()

Promise 调用 resolve 和 reject 回调函数

async/await

什么是 async/await

所以官方推出了​​async/await​​

async/await 基本使用

async/await 使用的注意事项

结束了!

【重要说明】本文为本人的学习记录,论点和观点仅代表个人而不代表当时技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!

【Gitee地址】秦浩铖:​​https://gitee.com/wjw1014​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读狗:官网变艾薇网站,内容不堪入目!
下一篇:vue中mixins的理解及应用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~