我正在尝试使用 Node.JS 应用程序来发出和接收 API 请求。它使用 Axios 向另一台服务器发出 get 请求,其中包含从 API 调用接收到的数据。第二个片段是脚本从调用中返回数据的时候。它实际上会将数据写入控制台,但不会在第二个 API 中将其发送回。
function axiosTest() {
axios.get(url)
.then(function (response) {
console.log(response.data);
// I need this data here ^^
return response.data;
})
.catch(function (error) {
console.log(error);
});
}
…
axiosTestResult = axiosTest();
response.json({message: "Request received!", data: axiosTestResult});
我知道这是错误的,我只是想找到一种方法让它发挥作用。我似乎可以从中获取数据的唯一方法是通过 console.log,这对我的情况没有帮助。
原文由 bunkerguy 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是原始
axiosTest()
函数没有返回承诺。为了清楚起见,这是一个扩展的解释:该函数可以写得更简洁:
或者使用异步/等待:
使用 Promise 指南
异步函数信息