当前位置: 首页 > 知识库问答 >
问题:

使用fetch w/react js访问返回promise中的对象

阚正真
2023-03-14

我有这个功能:

  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{[[PromiseState]]:"待定",[[PromiseValue]]:未定义}

proto[[PromiseStatus]]:“已解决”

[[PromiseValue]] : Object
avatar_url : "https://avatars.githubusercontent.com/u/"
login      : "hello world"
.
.
.

我需要访问对象中的名称/值对,但无法访问它们。我假设在将响应转换为json后,我需要多做一步,但我无法理解。如果有人能帮忙,我们将不胜感激!

共有2个答案

米飞龙
2023-03-14

这里有一个更短的方法来处理json对象

fetch(endpoint, request)
.then(response => response.json())
.then(json => {
  //handle json response
}
屠锐
2023-03-14

response.json()

.then(function(response) {
    return response.json();
})
.then(function(parsedData) {
    // data here
})

 类似资料:
  • 我正在尝试访问秒napshot.data()返回的内容,但有一个问题,如下面的评论所述。我试图创建一个异步函数,但无济于事。知道出了什么问题吗?请查看2条评论。

  • 我试图使用promise通过XHR发出异步请求。我可以从内部将结果记录到console.log中,然后在外部返回pending。 是一个数组,当我使用console.log(result)时,它看起来很好<但是,code>console.log(newResult)返回一个挂起的promise。

  • 问题内容: 我有python背景,目前正在迁移到node.js。由于其异步特性,我无法适应node.js。 例如,我试图从MySQL函数返回一个值。 经过一番阅读后,我意识到上面的代码无法正常工作,由于node.js的异步特性,我需要返回一个promise。我无法编写像python这样的node.js代码。如何转换为返回承诺,以及如何处理返回的值? 实际上,我想做的就是这样。 如何以可读的方式在n

  • 问题内容: 背景 我正在尝试学习承诺,并且我有一个希望改进的承诺链。 问题 在学习如何链接承诺时,我看不到为什么有人愿意返回承诺而不是返回其价值。 以下面的示例为例,该示例使用了Promise链接: 在这里,我必须链接2次。但是,如果我直接从方法中返回结果而不是返回Promise,则可能会执行以下操作: 问题 如您所见,我有些困惑。 鉴于实际上是异步的,是否有可能实现与我的第二个代码示例中的代码相

  • 问题内容: 我想使用这样的Promise来调用Google Maps Geocoding API: 当我调用函数请求时,我发现我得到了一个Promise而不是一个值: 为什么不答应。然后在返回值之前执行?我如何从这个承诺而不是另一个承诺中获得价值? 问题答案: 如果您依赖承诺来返回数据,则必须从函数中返回承诺。 一旦调用堆栈中的1个函数异步,那么要继续线性执行,所有要调用它的函数也必须异步。(异步

  • 问题内容: 我正在努力克服JavaScript(特别是AngularJS)中的承诺。 我在服务中有一个函数,我们称它为,它检查是否已加载一些数据。如果有,我只希望它返回,否则,我们需要加载数据并返回promise: 我有另一个函数,然后调用如下函数: 我在这里的问题是,如果我们不需要在函数中加载数据,则不会返回promise,因此在其他函数中不会调用the 。这里的方法应该是什么-基本上,如果我们