How to return the json response from the fetch API(如何从 fetch API 返回 json 响应)
问题描述
我有这样的功能:
check_auth(){
fetch(Urls.check_auth(), {
credentials: 'include',
method: 'GET'
}).then(response => {
if(response.ok) return response.json();
}).then(json => {
return json.user_logged_in;
});
}
然后我尝试这样做:
if(this.check_auth()){
// do stuff
} else {
// do other stuff
}
但是,this.check_auth()
总是 undefined
.
我在这里缺少什么?我认为在 fetch 的 then()
中是 resolved Promise 对象的位置,因此我认为当用户登录时我会得到 true
在.但事实并非如此.
What am I missing here? I thought that within fetch's then()
was where the resolved Promise object was therefore I thought that I'd get true
when the user was logged in. But this is not the case.
任何帮助将不胜感激.
推荐答案
使用回调
check_auth(callback){
fetch(Urls.check_auth(), {
credentials: 'include',
method: 'GET'
}).then(response => {
if(response.ok) return response.json();
}).then(json => {
callback(json.user_logged_in);
});
}
check_auth(function(data) {
//processing the data
console.log(d);
});
在 React 中它应该更容易处理,您可以调用 fetch 并更新状态,因为每次使用 setState 更新状态时都会调用渲染方法,您可以使用状态进行渲染
In React it should be easier to handle, You can call a fetch and update the state, since on every update of state using setState the render method is called you can use the state to render
check_auth = () =>{
fetch(Urls.check_auth(), {
credentials: 'include',
method: 'GET'
}).then(response => {
if(response.ok) return response.json();
}).then(json => {
this.setState({Result: json.user_logged_in});
});
}
这篇关于如何从 fetch API 返回 json 响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何从 fetch API 返回 json 响应
基础教程推荐
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- 直接将值设置为滑块 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01