promise是解决异步编程的方法,需要new 实例化;resolve返回的是成功状态值;reject返回的是失败状态值;
promise是同步任务,但是可以解决异步编程
1、 特点:
1. 三种状态:进行时,已成功,已失败
2. 两种状态转换:进行时=》已成功;进行时=》已失败
2、 promise一旦创建就会立即执行(同步任务);
调用resolve或reject执行异步任务;状态也会发生改变:由进行中=》已成功或者是已失败;
返回成功状态;实例化出来的对象,调用then,then里面也是一个回调函数,回调函数中有一个参数res这个参数接收的就是resolve的返回值;
let p1 = new Promise((resolve, reject) => {
console.log('promise') // 同步任务 进行中
resolve("success")
})
p1.then(res => {
console.log(res)
})
Promise.all 和 Promise.race
Promise.all() 做并发处理,等所有的请求有了返回值之后,同一返回,返回的是一个数组;
Promise.race() 获取的是请求速度最快的值;(设置定请求时间,超过500ms的时候,提示用户请求超时。)