发布时间:2022-10-07 12:00
为熟悉async与await的使用,本文通过小案例来进行AJAX的发送!具体原理见如下博文!
async函数与await函数基本原理介绍 https://blog.csdn.net/czj1049561601/article/details/114238733
案例内容:
通过点击屏幕上的按钮来过去接口中的笑话,并进行打印!
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button id="btn">点击获取段子</button>
<script>
function sendAJAX(url) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.responseType = 'json';
xhr.open('GET', url);
xhr.send();
// 处理结果
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
resolve(xhr.response);
} else {
reject(xhr.status);
}
}
}
})
}
let btn = document.querySelector('#btn');
btn.addEventListener('click', async function () {
// 获取段子信息
console.log('TEST');
let duanzi = await sendAJAX('https://api.apiopen.top/getJoke');
console.log(duanzi);
})
</script>
</body>
</html>
1:在错误处理这方面,async和await结合方式,用try catch包裹就可以,比原来使用纯回调函数要方便的多!不需要一层层判断。
2:在async和await的使用过程中,我们是看不到回调函数的!
3:在promise的then方法和catch方法中,可以看到有回调函数。
4:非常简洁,就类似于我们写同步函数调用的方式,只不过在前面多了个await,但是他的内部的执行确是异步的。
anaconda python3.8目录_数据分析入门01——Anaconda
独立产品灵感周刊 DecoHack #022 - 截图应用如何在一个月收入 8000 美元
B站回应裁员传闻:没有大规模裁员;特斯拉将在上海大量招聘研发人员;Java 27岁生日快乐 |极客头条
CNN Matlab例子RGB_Matlab中的深度学习——CNN图像分类实例
COSCon'22 社区召集令来啦!Open the World,邀请所有社区一起拥抱开源,打开新世界~
AMiner发布2022 AI 2000人工智能最具影响力学者名单
将 Terraform 生态粘合到 Kubernetes 世界