尽管我使用了 try/catch 和 async/await,但在控制台中出现错误

问题描述 投票:0回答:1
export async function getCurrentUser() {
  try {
    const user = await account.get();
    return user;
  } 
  catch (err) {
    console.log("no user found : ", err);
    return null;
  }
}

async function handleClick() {
    try {
      const res = await getCurrentUser();
      console.log(res);
    } 
    catch (err) {
      console.log("error : ", err);
    }
  }

我在后端使用 appwrite。api 请求返回一个承诺作为响应。

执行上述代码时,我在控制台中收到错误。我使用过 try/catch 和 async/await。我不明白为什么控制台中显示错误。请帮忙

reactjs async-await try-catch appwrite
1个回答
0
投票

试试这个,

//get current user
export async function getCurrentUser() {
  try {
    const user = await account.get();
    return user;
  } 
  catch (err) {
    console.log("Error in getCurrentUser: ", err);
    return null;
  }
}

//handle click event
async function handleClick() {
  try {
    const res = await getCurrentUser();
    console.log("User:", res);
  } 
  catch (err) {
    console.log("Error in handleClick: ", err);
  }
}

//usage
handleClick();

//Global handler
window.addEventListener('unhandledrejection', function (event) {
  console.error('Unhandled rejection (promise: ', event.promise, ', reason: ', event.reason, ').');
});

只是简单的函数来获取当前用户并通过错误处理来处理点击事件,以及用于未处理的承诺拒绝的全局处理程序。

© www.soinside.com 2019 - 2024. All rights reserved.