浅析es6中Promise
一、基本概念
Promise是异步编程的一种解决方案。我们在前端可能会遇到很多异步的情况,比如说ajax、node中的文件读取、网络请求等等。以前我们通过回调函数去解决异步情况。但是,当网络请求非常复杂时,就会出现回调地狱。此时开发人员很难阅读代码。
es6
中的Promise
将横向写代码变成了纵向,更加的直观。它采用的原理如下所示
二、基本使用
resolve
和reject
它们两个也是函数,通常情况下:
- 成功:那么通常我们会调用
resolve(messsage)
,这个时候,我们后续的then会被回调。 - 失败:那么通常我们会调用
reject(error)
,这个时候,我们后续的catch会被回调。
new Promise((resolve, reject) => {
//1、发送异步请求
}).then((data) => {
//2、处理异步请求
}).catch((error) => {
//3、处理报错
})
示例如下:
三、Promise链式调用
无论是then还是catch都可以返回一个Promise对象,因此我们可以进行如下的链式调用
四、Promise满足多条件时执行
promise.all([])
其中all中可以存放多个Promise对象,当其中的所有Promise对象都满足条件的时候,才会执行下一步