使用fetch w/react js访问返回promise中的对象
Accessing object in returned promise using fetch w/ react js
我有这个函数:
getUserData() {
fetch(this.props.apiUrl + this.state.username + '?client_Id=' + this.props.clientId + '&client_secret=' + this.props.clientSecret)
.then(function(response) {
var data = response.json();
this.setState({
userData: data
});
console.log(this.state.userData);
}.bind(this))
.catch(function(error) {
this.setState({
username: null
});
console.log(error)
}.bind(this))
}
它在控制台中返回这个:
Promise{[[PromiseStatus]]:"挂起",[[PromiseValue]]:未定义}
原型[[PromiseStatus]]:"已解决"
[[PromiseValue]] : Object
avatar_url : "https://avatars.githubusercontent.com/u/"
login : "hello world"
.
.
.
我需要访问对象中的名称/值对,但无法访问它们。我假设在将响应转换为json之后,我需要多走一步,但我无法弄清楚。如果有人能帮忙,我们将不胜感激!
response.json()
返回一个promise,因此您还需要适当地处理它,例如:
.then(function(response) {
return response.json();
})
.then(function(parsedData) {
// data here
})
这里有一个处理json对象的更短的方法
fetch(endpoint, request)
.then(response => response.json())
.then(json => {
//handle json response
}
只需使用await:response = await response.json();
并且您将在响应中有对象,因此您必须首先将函数设置为asyncCCD_ 3和在获取之前使用wait。
相关文章:
- 如何从节点中的api promise返回对象
- 如何将从$promise返回的数据分配给全局变量
- Bluebird:运行promise返回函数序列
- 如何使用promise返回从递归AJAX调用构建的集合
- 如何正确编码promise返回函数
- 如何从Q节点promise返回变量
- 从Promise返回值
- Angularjs检查是否有2个promise返回
- Sequelize:如何访问[object Promise]或从Promise返回值
- 如何用chai断言从promise返回的json
- 将从节点promise返回的对象循环到下一个.then
- AngularJS异步请求方法服务使用promise返回数据
- 单元测试:在模拟promise返回来测试我的emit时遇到困难
- 从Promise返回值到Promise. all
- 为什么'new Promise(…)'返回& # 39;未定义# 39;
- AngularJS ajax http promise返回额外的数据
- AngularJS服务内部的promise返回值似乎会改变
- 定义一个NavigationInstruction,等待promise返回
- 如何使用promise返回数组的最终结果
- 在Promise返回函数中找到第一个成功