定义
Promise对象用于表示(管理)一个异步操作的最终完成(或失败)及其结果值。
好处:1)成功和失败状态,可以关联对应处理程序 2)了解axios函数内部运作机制 3)能解决回调函数地狱问题
语法:
//1.创建Promise对象
const p=new Promise((resolve,reject)=>{//2.执行异步任务-并传递结果//成功调用:resolve(值) 触发then()执行//失败调用:reject(值) 触发catch()执行
})
//3.接收结果
p.then(result=>{//成功
}).catch(error=>{//失败
})
new Error('错误信息'):创建一个错误对象
三种状态
概念:一个Promise对象,必然处于以下几种状态之一
1)待定(pending):初始状态,既没有被兑现,也没有被拒绝
2)已兑现(fulfilled):意味着,操作成功完成
3)已拒绝(rejected):意味着,操作失败
注意:Promise对象一旦被兑现/拒绝就是已敲定了,状态无法再被改变
Promise对象创建时,Promise对象里的代码就会在执行了
//创建Promise对象
const p=new Promise((resolve,reject)=>{//执行XHR异步代码,获取省份列表const xhr = new XMLHttpRequest()xhr.open(请求方式,URL)xhr.addEventListner('loadend',()=>{//响应状态码为2xx都是成功响应if(xhr.status >=200 && xhr.status < 300){resolve(JSON.parse(xhr.response))}else{reject(new Error(xhr.response))}})xhr.send()
})//关联成功或失败函数,做后续处理
p.then(result=>{//成功
}).catch(error=>{//错误对象要用console.dir详细打印console.dir(error)
})