ts怎么获取异步函数返回值

export async function getBasicData() {
  const data = await hot();
  const arr: any = [];
  for (let index = 0; index < 6; index++) {
    arr.push({
      id: `${index}`,
      name: '张三',
      age: `1${index}`,
      dates: data,
      address: '中华人名共和国',
      beginTime: new Date().toLocaleString(),
      endTime: new Date().toLocaleString(),
    });
  }
  return arr;
}
export default defineComponent({
    components: { BasicTable },
    setup() {
       //  这里!!!!!!!!!!!!!!!!!!!!!
      let datas;
      getBasicData().then(function (res) {
        datas = res;
      });
      getBasicData().then(fun)
      return {
        data: datas,
      };

因为是异步执行,导致调用 getBasicData() 的时候代码会继续运行不会等 getBasicData() 执行完返回值,datas则等于undefined,怎么能让getBasicData() 执行完后在往下执行

export default defineComponent({
setup() {
const isLoading = ref(false);
const error = ref(null);
const data = ref(null);
const getUsers = async () => {
isLoading.value = true;
try {
const json = await axios('foo/bar');
data.value = json;
isLoading.value = false;
} catch (e) {
error.value = e;
}
};

return { isLoading, error, data, getUsers }; 

}
});

import { ref } from "vue";
export default defineComponent({
    components: { BasicTable },
    setup() {
       //  这里!!!!!!!!!!!!!!!!!!!!!
      let datas = ref({});
      getBasicData().then(function (res) {
        datas.value = res;
      });

      return {
        data: datas,
      };