promise 解决异步编程 是链式操作
可以用new promise 实例化
里面有两个函数的参数 (reslove,reject)
promise有三个状态
pengding 初始状 reslove fulfilled 成功 reject rejected失败
举例
// let p1 =new Promise((resolve,reject)=> {
// setTimeout(()=> {
// reject(1)
// },100)
// })
// let p2 =new Promise((resolve,reject)=> {
// setTimeout(()=> {
// resolve(2)
// },1000)
// })
// let p3 =new Promise((resolve,reject)=> {
// setTimeout(()=> {
// resolve(3)
// },1400)
// })
Promise.all 等待promise全部执行成功
// Promise.all([p1,p2,p3]).then(res=> {
// debugger
// })
Promise.race 哪个先结束就执行谁不管是成功还是失败
// Promise.race([p1,p2,p3]).then(res=> {
// debugger
// }).catch(err=> {
// debugger
// })
用promise封装axios
function axios() {
return new Promise((resolve, reject) => {
var xml = new XMLHttpRequest()
xml.open('get', '请求的接口')
xml.send()
xml.onreadystatechange = function () {
if (xml.readyState == 4 && xml.status == 200) {
resolve(xml.response)
}
}
})
}
let a = axios()
a.then(res => {
debugger
})