javascript - axios GET 请求有效,但无法将结果内容分配给变量

标签 javascript arrays json reactjs axios

我是 javascript/React.js 的新手,我已经在这个奇怪的问题上停留了 5 个小时了:

我目前正在尝试从数据库获取一些数据,每当我使用 axios 执行 get 请求时,数据库都会向我发送一个 json 文件。我可以获取数据并记录其内容,但由于某种原因,我无法将任何内容“转发”到 axios 函数之外。

这是我编写的简短代码,带有 2 个测试日志:

requests.js

foo() {

  // var declared outside of axios function
  var resultSet;

  axios.get(
    /working/url/example/
  ).then((res) => {
    resultSet = res.data.rows.slice();

    // FIRST LOG, inside axios function
    console.log(resultSet);
  }).catch(
    error => console.log(error)
  );

  // SECOND LOG, outside of axios function
  console.log(resultSet);
}

然后我得到了那些奇怪的输出。不知何故,第一个日志在第二个日志之后打印:

chrome 控制台

undefined                    requests.js:20
(3) [{…}, {…}, {…}]          requests.js:15

第一个日志成功显示了我请求的内容,但第二个日志显示相同的变量在某种程度上未定义。

我还是个新手,所以我可能会犯一个基本错误,但我无法在其他帖子上找到任何相关案例,因为我无法找出导致此问题的原因。任何帮助将不胜感激。

最佳答案

我认为原因是异步请求,当您发出 GET 请求时,您的代码一直在执行,但请求可能尚未完成,这解释了未定义,当请求完成时,您得到了数据打印在控制台上。

关于javascript - axios GET 请求有效,但无法将结果内容分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52527844/

相关文章:

javascript - 无法在 npm Ubuntu 中安装 jasmine-core

javascript - 为什么 Javascript 返回 [object Object]?

javascript - 查找数组中对象的值(和键)(JS)

arrays - numpy 数组的最大大小是多少?

c# - 模型绑定(bind)新的 Datatables 1.10 参数

javascript - Overlay div 链接到相同的相关 div 目标地址

javascript - 多个 noUiSlider 实例化问题

arrays - typescript 类型检查不适用于数组过滤器

ajax - JIRA Rest API 错误。无法识别的 token 造成了问题

json - 数据逐行而不是成批插入