尝试 catch util 函数不从 catch 块返回值

Try catch util function not returning value from catch block

提问人:Usama Javed 提问时间:10/27/2023 更新时间:10/27/2023 访问量:27

问:

我正在学习javascript中的概念。

我有一个获取用户数据的函数。我正在使用 tryCatch 函数将其用作 util 函数。在我的 runApp 函数中,我将我的函数作为回调传递给 tryCatch 函数,该函数返回数据或错误。

当没有错误时,它会很好地返回数据,但是当有错误时,它会转到 catch 块,打印错误但不返回值。

即使出现错误,下一行代码甚至无法到达我在控制台的 runApp 函数中.log(数据)。

 async function runApp() {
      let userId = 5;

     await tryCatch(async () => {
        let data = await fetchUserData(userId);
        console.log(data);
      });
    }

    async function tryCatch(callback) {
      try {
        return await callback();
      } catch (e) {
        console.log(e);
        return e;
      }
    }

    runApp();

我期望在尝试打印数据或错误的 runApp 函数中出现错误。

javascript promise try-catch

评论

2赞 VLAZ 10/27/2023
如果 in 回调抛出错误,那么自然而然地,在回调内部之后,有错误的行不会触发。 不会将控制权返回给它已经完成执行的回调。这根本不是 try/catch 的运作方式。 仍然返回值,但分配它。如果你捕捉到它,你就能看到它fetchUserDataconsole.log(data);return ereturn econst result = await tryCatch(...)
0赞 Usama Javed 10/27/2023
知道了,兄弟,非常感谢。实际上,我试图在回调中获取数据,而不是在runApp中可用。

答: 暂无答案