我正在尝试创建一个函数,该函数将通过fetch向我的API发送请求并等待结果-如果返回数据,则我希望该函数返回true
,否则返回false
。
const loggedIn = async () => {
const response = await fetch(ENDPOINT_URL, {
method: "POST",
credentials: "include",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
query: query,
})
})
const json = await response.json()
// data gets logged
console.log(json.data)
if(json.data) {
return true
} else {
return false
}
}
如果我致电loggedIn()
,我仍然收到Promise {<pending>}
吗?
答案 0 :(得分:0)
一个async
函数返回一个Promise。从调用者的角度来看,它与其他返回承诺的函数没有什么不同。调用它时,您会得到一个需要处理的承诺,而不是价值,因为这将需要阻止。
听起来像您希望它阻止您的代码。为此,请从另一个async
函数调用它:
(async () => {
try {
console.log(await loggedIn()); // true or false
} catch (e) {
console.log(e);
}
})();