如何调整fetch API调用逻辑,根据用户登录状态返回指定布尔值
调整Fetch请求返回值,直接返回布尔值匹配登录状态需求
嘿,我明白你的需求了——你希望checkLoggedInStatus()直接返回true(当登录状态是NotLoggedIn时),其他情况返回false,而不是返回原始的状态文本。现在的问题是你在函数外部的then回调里做了判断,但这个判断结果并没有成为checkLoggedInStatus()函数的返回结果。
你只需要把布尔值的判断逻辑移到fetch的then链内部,让函数直接返回处理后的布尔值即可。修改后的代码如下:
function checkLoggedInStatus() { return fetch("www.MYAPI.com") .then((response) => response.text()) .then((result) => { const data = JSON.parse(result); // 直接在这里判断并返回需要的布尔值 return data === "NotLoggedIn"; }) .catch((error) => { console.log("error", error); // 出错时返回默认值,避免后续处理出现undefined return false; }); }; // 调用时直接获取布尔值 checkLoggedInStatus().then(isNotLoggedIn => { console.log("当前是否未登录:", isNotLoggedIn); // 这里可以直接使用这个布尔值做后续逻辑 })
关键调整点:
- 把原来返回解析后
data的逻辑,改成直接返回data === "NotLoggedIn"的判断结果(这会自动生成true或false)。 - 在
catch块里添加了return false,避免请求出错时promise的返回值为undefined,确保始终返回布尔类型。
这样修改后,checkLoggedInStatus()返回的Promise就会直接解析为你需要的布尔值,不需要在外部再做额外判断啦。
内容的提问来源于stack exchange,提问作者Reena Verma
相关产品推荐
相关产品推荐

