首先promise是一个对象主要用于对异步的处理
1.Promise返回三种状态 pending (异步操作未完成) (fulfilled)异步操作成功 (rejected)异步操作失败
pending状态只能改变成为 fulfiled 或者 rejected
2.Promise 拥有两个属性 .race(顾名思义的来说就是赛跑) .all(就是全部的意思)
一、Pomise.all的使用
Promise.all 可以将多个Promise实力包装成一个新的promise实例,同时,成功和失败的返回值是不同的,如果成功了之后就会输出所有被执行的结果 如果有reject就会立马返回失败的结果
let p1= new Promise((resolve,reject) => {
setTimeout(() => {
resolve('p111111')
},1000)
})
let p2= new Promise((resolve,reject) => {
setTimeout(() => {
resolve('p2222222')
},2000)
})
//p1就会等着 p2 执行完一起输出
Promise.all([p1,p2]).then((result) => {
console.log(result) // ['p111111','p2222222']
})
二、Promise.race的使用
race 英文翻译过俩就是赛跑的意思 几个函数 谁先执行完 打印谁
let p1 = new Promise((resolve,reject) => {
setTimeout(() => {
resolve('111111111')
},1000)
})
let p2 = new Promise((resolve,reject) => {
setTimeout(() => {
resolve('2222222')
},500)
})
// 这里就是 谁先执行完 输出谁
Promise.race([p1,p2]).then((result) => {
console.log(result) //2222222
})