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)); //可以打出数据
posted @ 2024-01-25 10:44  风意不止  阅读(27)  评论(0编辑  收藏  举报