1 Star 0 Fork 0

ice19/fuxi_107

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
promise相关的概念.html 1.93 KB
一键复制 编辑 原始数据 按行查看 历史
ice19 提交于 2024-03-01 17:28 . promise
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<button class="btn">async发请求</button>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/1.5.0/axios.js"></script>
<script>
// promise 是一个承诺,承诺在未来的某一个时间点,一定有一个固定的结果,要么成功resolve要么失败reject -- 出现的原因就是为了解决一切异步代码回调地狱的问题
// axios() 这个函数返回的是一个promise,不是一个值,是一个状态, 对于promise来说
// 有三种状态 等待中pendding 成功 resolve 失败 reject
const res = axios({
url: 'http://ajax-api.itheima.net/api/books',
});
// 首先res是一个pendding状态的promsie,就是等待中,如果请求成功走哪个函数?如果请求失败又走那个函数?
// 提前给这个promise写两个回调函数, 如果未来某一个时间点请求成功了, 就会自动指向 then里面的回调函数
// 如果这个请求10分钟后 失败了,那么就会自动指向 catch里面绑定的回调函数
res
.then((p1) => {
console.log('请求成功,服务器返回的值:', p1);
})
.catch((err) => {
console.log('请求失败,err里面就是失败的原因:', err);
});
console.log(res);
document.querySelector('.btn').addEventListener('click', async () => {
// vue里面大部分的代码都是使用 async +await 代替promise,更简便一些
// async 和 promise的区别就是 async是异步的代码当做同步的代码来写
console.log(1);
const res = await axios({
url: 'http://ajax-api.itheima.net/api/books',
});
console.log(2, res);
});
</script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/errlei/fuxi_107.git
git@gitee.com:errlei/fuxi_107.git
errlei
fuxi_107
fuxi_107
master

搜索帮助