0.Promise的介绍
1.Promise 是什么
是一种异步解决的方案 对比es5传统的解决异步的方案(回调函数,会产生回调地狱问题)
1.第一中使用方法,实现类似抛硬币正反面。
var p= function(){
return new Promise((res, rej)=>{
if (Math.random() < 0.5) {
res()
}
rej()
})
}
p().then(res=>{
console.log('正面')
}).catch(()=>{
console.log('反面')
})
2.封装ajax请求api接口数据。
var ajax = function(url){
return new Promise((resolve, reject)=>{
var xhr = new XMLHttpRequest();//创建一个XHR ajax请求
xhr.open('GET',url)//请求的方法和地址
xhr.onload = function(event) {
resolve(event)
};
xhr.onerror = function(event) {
reject(event)
};
xhr.send()//最后发送请求
})
}
ajax('/api.json').then(resolve=>{
console.log(resolve)//成功时候调用
}).catch(()=>{//catch 失败时候调用
console.log('请求数据失败...')
}).finally(()=>{
console.log('完毕')//inall是无论请求成功还是失败都会调用的
})