我是 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/