喂猪吃鸡腿 2021-11-23 14:59 采纳率: 47.8%
浏览 424
已结题

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() 执行完后在往下执行

  • 写回答

2条回答 默认 最新

  • 音药 2021-11-23 15:08
    关注

    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 }; 
    

    }
    });

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月25日
  • 修改了问题 11月23日
  • 创建了问题 11月23日