javascript - 如何从javascript中的获取中返回响应
问题描述
我无法在我的 React Native 项目中返回 API 调用的响应。
let response = fetch('http://3.133.123.120:8000/auth/token', {
method: "POST",
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
client_id: 'NTMtzF7gzZPU9Ka35UFsDHvpR8e4D1Fy4OPRsurx',
grant_type: 'password',
username: user,
password: pass,
})
})
.then((response) => response.json())
.then((response) => this.setState({jsonData: response}))
.then(() => alert('resposne jsonData: ' + JSON.stringify(this.state)));
alert('resposne jsonData: ' + JSON.stringify(response))
上面的代码在底部的 .then() 语句中返回了正确的响应,但是,我无法使用 fetch() 语句之外的数据。
我尝试在 fetch() 之外使用的任何东西(比如我在底线的警报)都给了我以下...
{"_40":0,"_65":0,_55":null,"_72":null}
另请注意,这都在 React 类组件中
解决方案
fetch
返回Promise
:https ://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
那时您已经可以访问该 final 中的值。如果您正在寻找一种在不使用回调的情况下使用以下值的方法,您可以考虑async/await
样式并将此代码包装在一个函数中,如下所示:
const fetchData = async () => {
const results = await fetch() // put your fetch here
alert(results.json());
};
获取信息: https ://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
异步/等待信息: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await
推荐阅读
- sql - 你如何获得按天计算的值的总和,但在 SQL 列中按天计算
- git - 如何在 git pull 具有不同用户和组的文件的目录期间保留用户和组?
- bootstrap-4 - 删除空格引导程序
- java - 使用 Apache Jena 使用 Sparql 查询 JsonLd
- python - 当我运行“flask shell”时,为什么 Python 3 REPL 没有在选项卡上显示方法和属性建议?
- r - R:在数据帧单元格搜索中插入值,从另一个数据帧中提取它
- python - 在python中处理内存不足的终止信号
- c# - Xamarin Forms Tap Gesture Click Effect on Stack 布局
- arrays - Julia,创建 3 的 Int8 数组的简约方法?
- ffmpeg - 我尝试使用 ffmpeg 将屏幕流式传输到多个源并出现错误