Skip to content

JavaScript异步函数返回值

在编写异步函数的过程中,无论函数执行成功或者是失败,都应该有返回值,否则会造成函数调用方一直等待。

javascript
<template>
</template>
<script>
import fetch from '@/config/fetch';
export default {
  methods: {
    /**
     * 初始化
     * 1、获取数据
     */
    async init() {
      try {
        this.$loading();
        let data = await this.getData();
        // 依赖getData方法获取数据,则调用getData方法时,需要增加await
        console.log(data);
      } catch (err) {
        console.error(err);
        this.$message({
          type: 'error',
          message: err.msg,
        });
      } finally {
        this.$loadingClose();
      }
    },
    /**
     * 获取数据
     */
    getData() {
      return new Promise((resolve, reject) => {
        fetch.get('xxxxxxxxx').then(({ data }) => {
          // TODO:接口调用成功时,需要返回数据,执行成功时的回调
          return resolve(data);
        }).catch((err) => {
          // TODO:接口调用失败时,需要抛出错误,执行失败时的回调
          return reject(err);
        });
      });
    },
  }
};
</script>