promise 是什么?
promise 是JS 中进行异步编程的最新的解决方案
从语法上来说:Promise 是一个构造函数
从功能上来说:promise 对象时用来封装一个异步操作并可以获取其结果
其三种状态,reasolve 、pendding、 rejected
Promise 的基本运行流程
1.创建一个 new Promise()
2.执行异步操作,成功了执行resolve(),失败了执行reject()
3. 回调执行.then()
4.then 返回的是一个新的promise 对象
Promise 的基本使用
1.创建一个新的Promise 对象
//1.创建一个新的Promise 对象
const p=new Promise((resolve,reject)=>{ //执行器函数
//2.执行异步操作任务
const time=Date.now() //如果当前时间是偶数就代表成功,否则就代表失败
//2.1 如果成功了,调用resolve
if(time%2==0){
resolve('成功了')
}else{
//2.2 如果失败了,调用reject
reject('失败了')
}
})
p.then(res=>{//接收得到 resolve成功的数据
},error=>{ //接收得到 reject失败的数据
})
为什么要用Promise?
1.指定回调函数的方式更加灵活
2.支持链式调用,可以解决回调地狱
Promise 的 API 的使用?
Promise.all() 接收的是一个数组
Promise.race() 接收的是一个数组
const PAll=Promise.all([p1,p2,p3]) //一个失败了,就统一失败了
const PAll=Promise.race([p1,p2,p3]) //看谁先完成