基于promise发送Ajax请求
<script>
// 基于promise发送Ajax请求
function queryData(url) {
var p = new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.readyState == 4 && xhr.status == 200) {
// 处理正常情况
resolve(xhr.responseText);
} else {
// 处理异常情况
reject('服务器错误');
}
};
xhr.open('get', url);
xhr.send(null);
});
return p;
}
queryData('http://localhost:3000/data')
.then(function(data) {
console.log(data)
}, function(info) {
console.log(info)
})
</script>
发送多个Ajax请求
<script>
// 基于promise发送Ajax请求
function queryData(url) {
var p = new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.readyState == 4 && xhr.status == 200) {
// 处理正常情况
resolve(xhr.responseText);
} else {
// 处理异常情况
reject('服务器错误');
}
};
xhr.open('get', url);
xhr.send(null);
});
return p;
}
// queryData('http://localhost:3000/data')
// .then(function(data) {
// console.log(data)
// }, function(info) {
// console.log(info)
// })
//发送多个Ajax请求
queryData('http://localhost:3000/data')
.then(function(data) {
console.log(data)
return queryData('http://localhost:3000/data1');
})
.then(function(data) {
console.log(data)
return queryData('http://localhost:3000/data2');
})
.then(function(data) {
console.log(data)
})
</script>