用途
是前端解决异步问题的统一方案,用于避免回调地狱,让代码看起来更同步
如何创建
function fn(){
return new Promise((resolve, reject)=>{
resolve(data) //成功调用这个
reject(result)//失败调用这个
})
}
then方法
接收两个回调函数,第一个是异步操作成功时的回调,第二个是异步操作失败时的回调
fn().then((data)=>{对应resolve}, (result)=>{对应reject})
catch方法
异步失败的回调也可以放到catch中
fn().catch((result)=>{对应reject})
Promise.all
可以接收一个数组,数组包含不同的promise,当每个promise都成功的时候,all对应的promise才成功,并接收一个数组,有一个失败,all就失败
Promise.all([promise1, promise2])
Promise.race
参数和all一样,区别在于,有一个成功、失败,race就成功、失败