使用Promise封装ajax
function getJSON(url) {
return new Promise((resolve, reject) => {
//1、创建一个实例对象
const xhr = new XMLHttpRequest();
// 2、新建一个http请求
xhr.open("get", url, true);
// 3、发起http请求
xhr.send(null)
// 4、设置状态的监听函数
xhr.onreadystatechange = function () {
if (xhr.readyState !== 4) return;
//请求成功,改变Promise实例的状态
if (xhr.status >= 200 && xhr.status <= 300) {
resolve(xhr.response)
} else {
reject(new Error(this.statusText))
}
}
// 设置错误的监听函数
xhr.onerror = function () {
reject(new Error(this.statusText))
}
// 设置响应数据的类型
xhr.responseText = "json"
})
}
// 案例使用
getJSON("http://localhost:3000/personnalized?limit=10").then(value => {
console.log(value);
}).catch((err => {
console.log(err);
}))