问题描述
发送http请求后,我检查状态是否为200,然后resolve() 但是如果声明似乎不起作用
function getMelumat(){
let promise = new Promise((resolve,reject)=>{
let xhr = new XMLHttpRequest();
xhr.open("GET",'https://jsonplaceholder.typicode.com/posts');
xhr.send()
xhr.onload = ()=>{
if ( this.status == 200){
resolve(this.response)
}
else{
throw "AN ERROR OCCURED"
}
}
})
return promise
}
getMelumat().then(data=>{
return JSON.parse(data)
}).then(data=>{
console.log(data)
})
解决方法
检查状态是否为200还不够;您还需要检查this.readyState
。
标头(带有状态)已经可以在this.readyState == 2
上使用,但是整个响应要到this.readyState == 4
才会完整。