针对于Promise专栏一,在promise专栏二中有三个重点需要掌握
第一个是 原生ajax请求的过程
第二个是 promise封装ajax请求发送的过程
第三个是 async和await对于使用promise对象封装ajax请求的优化过程
第一:原生ajax请求的过程
// //axios只是基于原生ajax封装的的一个js工具
// // 原生发送ajax请求(get请求)
// // 1.创建一个xhr对象
// const xhr = new XMLHttpRequest()
// // 2.打开链接的时候是可以设置我们的请求方式和请求地址链接
// xhr.open('get','http://localhost:3000/list')
// // 3.发送请求 由于是get请求 没有请求体
// xhr.send(null)
// // 4.监听xhr状态 处理响应
// xhr.onreadystatechange = function(){
// if(xhr.readyState === 4){
// if(xhr.status === 200){
// console.log(JSON.parse(xhr.responseText));
// }else{
// console.log(xhr.responseText);
// }
// }
// }第二:使用promise封装原生ajax请求的过程
//使用promise封装ajax请求的过程
//一旦promise对象创建完成,就会立即发送ajax请求
function axios(option){
return new Promise((resolve,reject)=>{
// 1.创建一个xhr对象
const xhr = new XMLHttpRequest()
// 2.打开链接的时候是可以设置我们的请求方式和请求地址链接
xhr.open(option.method,option.url)
// 3.发送请求 由于是get请求 没有请求体
xhr.send(null)
// 4.监听xhr状态 处理响应
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status === 200){
resolve(JSON.parse(xhr.responseText));
}else{
reject(xhr.responseText);
}
}
}
})
}
axios({
method:'get',
url:'http://localhost:3000/list'
}).then(res=>{console.log(res)})第三:async和await对于使用promise对象封装ajax请求的优化的过程
<script>
//promse对象封装ajax请求
function axios(option){
return new Promise((resolve,reject)=>{
//原生ajax请求
const xhr = new XMLHttpRequest()
xhr.open(option.method,option.url)
xhr.send(null)
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status === 200){
resolve(JSON.parse(xhr.responseText));
}else{
reject(xhr.responseText);
}
}
}
})
}
// async和await对于使用promise对象的优化过程
async function fn(){
const res = await axios({method:'get',url:'http://localhost:3000/list'})
console.log(res);
}
fn()
</script>
京公网安备 11010502036488号