javascript - 为什么 .then() 没有返回 JavaScript 获取所需的值?

标签 javascript reactjs fetch-api

所以这个问题非常简单。为什么这有效:

fetch("https://api.github.com/users/vampaynani/repos")
  .then((res) => res.json())
  .then((repos) => {
    console.log(repos);
    this.setState({ repos });
  });

但这并不:

fetch("https://api.github.com/users/vampaynani/repos").then((repos) => {
      var r = repos.json();
      this.setState({ repos: r });
    });

这是它的沙箱链接:SandBox

也许我的理解是错误的,但在我看来,这些看起来都在做同样的事情。

最佳答案

这是因为 repos.json() 是一个需要之前解决(等待)的 promise 。

fetch("https://api.github.com/users/vampaynani/repos").then(async (repos) => {
      var r = await repos.json();
      this.setState({ repos: r });
});

关于javascript - 为什么 .then() 没有返回 JavaScript 获取所需的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73556955/

相关文章:

javascript - jQueryeach与replaceWith结合问题

javascript - ReactJS 二维数组

javascript - 如何在 Gatsby 网站中添加 bootstrap js

javascript - 松弛传入 webhook : Request header field Content-type is not allowed by Access-Control-Allow-Headers in preflight response

javascript - HTTP请求错误码429抓不到

javascript - 正则表达式不匹配结果

javascript - 在一堆其他函数完成后调用一个函数

javascript - 使用 JS/JQuery/PHP 阻止所有网站 cookie(并重新启用它们)

javascript - 为什么 React JS 不自动为动态子项生成 key ?

node.js - React Native 在有/没有 wifi 的情况下获取不同的结果