promise 用法
定义
var promise = new Promise(function(resolve, reject) {
if (){
resolve(value);
} else {
reject(error);
}
});
使用
promise.then(function(value) {
}, function(error) {
});
promise.then(function(){
}).catch(function(){
})
es6 promise ajax
定义
const myHttpClient = url => {
return new Promise((resolve, reject) => {
let client = new XMLHttpRequest()
client.open("GET", url)
client.onreadystatechange = handler
client.responseType = "json"
client.setRequestHeader("Accept", "application/json")
client.send()
function handler() {
if (this.readyState !== 4) {
return
}
if (this.status === 200) {
resolve(this.response)
} else {
reject(new Error(this.statusText))
}
}
})
}
使用
myHttpClient('https://www.baidu.com').then(res => {
console.log(res)
}).catch(error => {
console.log(error)
})