为什么在我的例子中 Promise return 没有进入 then() ?

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

我不明白为什么它进不去

then()

我正在尝试检查令牌是否存在

utils.js

export const isTokenExists = () => {
  return new Promise((resolve) =>
    setTimeout(() => {

      const token = localStorage.getItem("Token");

      if ((token === null) | (token === undefined)) {
        console.log("token null or undefined");           //printing in console log if token is null or undefined
        Promise.resolve(false);
      }
  
     Promise.resolve(true);
   }, 3000)
 );
};

export const tokenExist = async () => {
  const result =await isTokenExists()
  .then((resp) => {   //totally
    console.log('then called')
    console.log(resp);
    return resp;
  });
  console.log(result)
  return result;
};

then() 没有在控制台日志中打印任何内容

我想尝试一些基于令牌是否存在的逻辑,它应该异步工作。 就我而言,它总是返回 true。我不明白为什么它总是返回 true 的逻辑

Signin.js

const tokenResult = tokenExist();
if(tokenResult){
  console.log('token result success')   //always token result success
}
else{
  console.log('token result failed')
}
javascript asynchronous async-await
1个回答
0
投票

isTokenExists
的内部承诺,您应该致电
resolve()
而不是
Promise.resolve()

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