首页 > 解决方案 > 如何从异步调用中返回错误

问题描述

我有一个写在文件中的函数。

async myfunction() {
  try {
    const data = await achievementService.stepsPerDayAchievement()
    console.log(data)
  } catch(err) {
    console.log(err)
  }
}

我从这里调用另一个函数,它写在另一个名为成绩的文件中。

  async stepsPerDayAchievement(user, stepsCount) {
    try {
      await ApiCall()
    } catch (err) {
      return err
    }
  }

但是当我从这个函数返回 err 时,它假设它是函数返回并且我在data. 我需要的是当我从stepsPerDayAchievement函数中抛出错误时,它会转到我的第一个文件中的错误部分function

有人可以帮助我在这里做错了吗

标签: javascriptnode.jsasynchronouspromiseasync-await

解决方案


您需要从stepsPerDayAchievement方法中抛出一个错误:

  async stepsPerDayAchievement(user, stepsCount) {
    try {
      await ApiCall()
    } catch (err) {
      throw new Error(err);
    }
  }

这样,它将落在调用函数的 catch 块中。


推荐阅读