一、使用promise封装原生ajax。
function ajax(method, url, data){
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
var method = method || "GET";
var data = data || null;
xhr.open(method, url, true);
xhr.onreadystatechange = function() {
if(xhr.status === 200 && xhr.readyState === 4){
resolve(xhr.responseText);
} else {
reject(xhr.responseText);
}
}
xhr.send(data);
})
}
ajax("GET", "/some/url.json", null)
.then(result => {
console.log(result);
})
二、使用promise封装$.ajax()。
function ajax(url, type = "get", data = "") {
return new Promise((resolve, reject) => {
$.ajax({
type,
url,
data,
success: function (res) {
resolve(res)
}
});
})
}
ajax('https://api.it120.cc/list').then(res=>{
console.log(res);
})
三、使用promise封fetch?
let request = function (url, type = 'get', data) {
return fetch(url, {
method: type,
headers: {
"Content-Type": "application/json",
},
body: data,
}).then(res => {
if (res.status !== 200) {
console.log("存在一个问题,状态码为:" + res.status);
return;
}
res.json().then(function (arr) {
console.log(data);
});
})
}
request("https://api.it120.cc/maxinglong/banner/list")