javascript - Promise 不会解析为 true 或 false

标签 javascript promise

export const checkLoggedIn = () => {
  return new Promise((resolve, reject) => {
    apiConfig.fetchApi('/users/is_valid', {}, 'get', {})
    .then((resp)=> {
        resolve(true);
    })
    .catch((exception)=> {
        reject(false);
    })
    .done()
  })
}

以上是我的用户 token 检查代码。 但是函数 checkLoggedIn() 如下图所示 enter image description here

但我只想得到 true 或 false。 如果您在代码中发现问题,请将其注释掉

最佳答案

请检查 then 的定义和 catch以及 Promise 的一般定义和用法.

在您的示例中,apiConfig.fetchApi 似乎返回了一个 Promise(因为您使用的是 then(),它在 Promise 上工作)。因此,您不必创建新的 Promise。

您的代码可能如下所示(我在此处排除了响应参数,因为您没有在代码片段中使用它):

export const checkLoggedIn = () => (
  apiConfig.fetchApi('/users/is_valid', {}, 'get', {})
    .then(() => true)
    .catch(error => { console.log(error); return false; })
);

如果apiConfig.fetchApi返回一个Promise,您可以创建一个Promise。但随后您必须处理 apiConfig.fetchApi 的返回值,并根据其值解决或拒绝。

关于javascript - Promise 不会解析为 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44615603/

相关文章:

javascript - 使用 google API 和 javascript 的 PHP 项目 : Inherited Mess

typescript - Typescript 中的链接 Promise

javascript - 如何在useEffect hook中使用Promise.all获取所有数据?

javascript - 我们如何在将鼠标悬停在子导航上时停止 Jquery 动画?

Javascript 标签未出现在 Rails 上的 html 中

javascript - react : Boolean variables to indicate a successful fetch before rendering

javascript - 带有子路由器的 Aurelia-Router 显示警告

node.js - 按顺序运行大量的 Promise

php - 在 PHP 中为 JavaScript 函数生成数组

javascript - 使用 Jquery 访问 innerhtml