javascript - 从 Javascript 中的 api 请求返回数据
问题描述
我对 JavaScript 和 api 调用相当陌生,我一直在努力从 api 调用返回一组值。我的代码如下:
module.exports = function api() {
const array = []
function loop(result) {
const array2 = [];
for (let i = 0; i < result.length; i++) {
array2.push(result[i].id);
}
return array2;
}
request(options, async (error, response, body) => {
if (error) throw new Error(error);
const result = body.results[0].results;
const loop2 = await loop(result);
array.push(loop2);
console.log(array)
});
return array
};
所以我要做的就是在 API 请求将结果推送到数组之后返回数组。
当我 console.log 请求中的数组时,我可以看到正确的响应,但我不知道在请求完成后如何返回数组。
我尝试将模块转换为异步函数并等待请求,但效果相同。
编辑——在阅读了一些评论后,我认为我应该更具体地说明这个问题。我不确定如何使用上面的请求实现回调。我尝试了以下方法,但似乎不起作用。
module.exports = function api() {
function loop(result) {
const array2 = [];
for (let i = 0; i < result.length; i++) {
array2.push(result[i].id);
}
return array2;
}
request(options, request1(error, response, body, requestResponse));
async function request1(error, response, body, callback){
if (error) throw new Error(error);
const result = body.results[0].results;
const loop2 = await loop(result);
callback();
}
function requestResponse() {
console.log(loop2)
}
};
解决方案
推荐阅读
- angular - Angular Service Worker (ngsw) 或 Workbox
- flutter - 当我使用尾随新列时,RenderFlex 在底部溢出了 40 像素
- mysql - SQL - 如何使用 SUBSTRING 函数输出为 Col Name
- java - Spring restTemplate 中的 START_ARRAY 令牌
- r - tmap:在光栅图图例中的键周围添加矩形框
- c - 使用 Mach 信号量替代进程间匿名信号量
- apache-kafka - 为 Flink 集群中的插件添加自定义依赖项
- html - 放大时垂直导航栏不会填满屏幕的 100% 高度
- awk - 从 2 个文件中划分列值以匹配 id 和 header
- selenium - 在登录页面签名按钮在自动化时不可点击