@[TOC](axios 进行同步请求(async+await))
遇到的问题介绍
将axios的异步请求改为同步请求
想到了async 和await、Promise
axios介绍
Axios 是一个基于 promise 的 HTTP 库,它支持 Promise API。
普通常见的请求
axios.post('getsomething').then(
res => {
// 进行一些操作
}
)
async 和 await
而 async/await 是一种建立在Promise之上的编写异步或非阻塞代码的新方法。async 是异步的意思,而 await 是 async wait的简写,即异步等待。
所以从语义上就很好理解 async 用于声明一个 函数 是异步的,而await 用于等待一个异步方法执行完成。
那么想要同步使用数据的话,就可以使用 async+await 。
// 假设这是我们要请求的数据
function getSomething(n) {
return new Promise(resolve => {
// 模拟1s后返回数据
setTimeout(() => resolve(222), 1000);
});
}
function requestSomething() {
console.log(111);
getSomething().then(res => console.log(res));
console.log(333);
}
requestSomething() //这个时候会输出 111,333,222
// 如果想要等数据返回后再执行后面的代码,那么就要使用 async/await
async function requestSomething() {
console.log(111);
// 这时something会等到异步请求的结果回来后才进行赋值,同时不会执行之后的代码
const something = await getSomething();
console.log(something)
console.log(333);
}
requestSomething() //这个时候会输出 111,222,333
本文介绍了如何使用async和await将axios的异步请求转换为同步请求。通过示例展示了在JavaScript中如何结合Promise和async/await来确保数据获取后才执行后续代码,从而实现更有序的代码流程。

被折叠的 条评论
为什么被折叠?



