promise学习笔记

一、引人: 回调地狱

多层回调函数的相互嵌套,就形成了回调地狱。 为了解决回调地狱的问题,ES6(ECMAScript 2015)中新增了 Promise 的概念

 二、基本概念

 基于回调函数按顺序读取文件内容

 Promise 支持链式调用,从而来解决回调地狱的问题。示例代码如下:

 

 通过 .catch 捕获错误

可以使用 Promise.prototype.catch 方法进行捕获和处理: 

 Promise.all() 方法

 Promise.all() 方法会发起并行的 Promise 异步操作,等所有的异步操作全部结束后才会执行下一步的 .then 操作(等待机制)。

 Promise.race() 方法

 Promise.race() 方法会发起并行的 Promise 异步操作,只要任何一个异步操作完成,就立即执行下一步的 .then 操作(赛跑机制)。

 

 基于 Promise 封装读文件的方法

 getFile 方法的基本定义

 获取 .then 的两个实参

通过 .then() 指定的成功失败的回调函数,可以在 function 形参中进行接收, 调用 resolve reject 回调函数

Promise 异步操作的结果,可以调用 resolve reject 回调函数进行处理。 

 

三、 async/await

async/await ES8ECMAScript 2017)引入的新语法,用来简化 Promise 异步操作

async/await 出现之前,开发者只能通过链式 .then() 的方式处理 Promise 异步操作。

使用 async/await 简化 Promise 异步操作的示例代码如下:如果在 function 中使用了 await,则 function 必须async 修饰

async 方法中,第一个 await 之前的代码会同步执行await 之后的代码会异步执行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值