axios的封装,以及,使用saync和await,以及如何捕获错误
略过封装看使用
import { request2 } from 'utils/request';
// 获取树数据
export const getTreeList = async params => {
return await request2<any>({
url: '/tree/industryLink/linkTree',
method: 'get',
params,
});
};
// 获取下拉框数据
export const getIndustryList = async () => {
return await request2<any>({
url: '/tree/industryNews/industryList',
method: 'get',
});
};
基于当前的定义,如何去使用接口函数,如何去捕获错误呢?
getIndustryList().then((res: any) => {
if (res.code === 0) {
if (res.data) {
setSeletItem(res.data[0]);
setSeletInfo(
res.data.map(item => {
return { value: item, label: item };
}),
);
}
} else {
message.error(res.message);
}
});
await后面的函数,必须是async定义的吗?
不一定,await的注意事项是:
wait关键字必须在一个async函数内部使用,并且它等待的是一个Promise或返回Promise的表达式。
await等待一个promise,然后,被async返回。返回的P。可以使用then,catch等等
await 也可以等待一个 非promise,他会直接返回,没有延迟效果。
async function test() {
await Math.random();
}
test().then(res => console.log(res)); //打印不出数据
async function test() {
const randomNumber = Math.random();
return randomNumber;
}
test().then(res => console.log(res)); //可以打出数据
分类:
3js|es5|es6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
2021-01-25 fastadmin控制台弹窗的时候,出现重复框架,出现无限嵌套,解决办法
2021-01-25 如何突破gitee的仓库50个限制,付费?还是用gogs搭建属于自己的git网站
2021-01-25 git相关的工作流程,以及如何fork,fastadmin贡献代码