ajax/axios接收数据异步同步问题

问题遇到的现象和发生背景

因为使用ajax/axios接收接口数据并返回使用,函数调用接收函数返回值时返回为 undefined

问题相关代码,请勿粘贴截图

接收接口数据代码

// ajax
export function hot() {
  let datas;
  $.ajax({
    type: 'GET',
    url: 'http:url',
    // data: datas,
    async: false,
    succeed: function (res) {
      datas = res;
      console.log(1, datas);
    },
  });
  console.log(2, datas);
  return datas;
}
// axios
export function hot1() {
  axios
    .get('http://192.168.28.176:8000')
    .then(function (res) {
      return res;
    })
    .catch(function (error) {
      return error;
    });
}

接收 接收接口函数返回值

export function getBasicData() {
  const datas = hot();
  console.log(3, datas);
}
运行结果及报错内容

运行结果都是 3 1 2 或者3 1

我想要达到的结果

我想要的结果是 接收接口数据返回值之后在执行我之后的代码(console.log(3, datas);)

async/await

肯定是在异步的回调then里面进行操作啊,不明白你为什么写成这样。

用fetch吧。

    export async function getBasicData() {
      const response = await fetch('http://192.168.28.176:8000')
      const datas = await response.json()
      console.log(3, datas)
    }

可能代码不太全,这是精简后的代码

export function hot() {
  return new Promise(function (resolve) {
    axios
      .get('http://url:8000')
      .then(function (res) {
        console.log(1, res.data);
        resolve(res.data);
      })
      .catch(function (error) {
        resolve(error);
      });
  });
}
export async function getBasicData() {
  const datas = await hot();
  console.log(3, datas);
  const arr: any = [];
  for (let index = 0; index < 6; index++) {
    arr.push({
      id: `${index}`,
      name: '张三',
      age: `1${index}`,
      dates: datas,
      address: '中华人名共和国',
      beginTime: new Date().toLocaleString(),
      endTime: new Date().toLocaleString(),
    });
  }
  return arr;
}
export default defineComponent({
  components: { BasicTable },
  setup() {
    return {
      columns: getBasicColumns(),
      data: getBasicData(),
    };
  },

想要在defineComponent组件里获取getBasicData()返回值,该怎么办