使用异步和等待的未处理拒绝(InvalidTokenError)

问题描述 投票:0回答:1

尽管在正确的位置使用await并捕获任何可能的错误,但未定义令牌时,以下函数会引发错误“未处理的拒绝(InvalidTokenError):指定的令牌无效:无法读取未定义的属性'replace'”:] >

async function authenticateUsingExistingToken() {
  const userToken = localStorage.FBIdToken;
  if (userToken) {
    const decodedToken = jwtDecode(userToken);
    if (decodedToken.exp * 1000 < Date.now()) {
      resetUserContext();
      localStorage.FBIdToken = "";
    } else {
      axios.defaults.headers.common["Authorization"] = userToken;
      try {
        const responseObj = await axios.get("/user");
        setUserStates(responseObj.data);
      } catch (err) {
        console.error("Authentication Error! err: ", err);
      }
    }
  } else {
    resetUserContext();
  }
}
authenticateUsingExistingToken();

如果您能给我一些有关为什么会引发这种错误的想法,我将不胜感激。控制台报告错误,该错误发生在该函数的最后一行,其中}正在关闭该错误!

尽管在正确的位置使用了await并捕获了任何可能的错误,但是当未定义令牌时,以下函数将引发错误“未处理的拒绝(InvalidTokenError):无效的令牌...

javascript error-handling async-await unhandled-exception
1个回答
0
投票

基于未定义的userToken值和您的错误位置(尽管它应基于错误堆栈),可能已从resetUserContext()引发了异常。

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