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()
如下图所示
但我只想得到 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/