javascript - 两个foreach或for循环内部的axios无法访问外部数据
问题描述
var datavals = () =>{
var s = [];
var val = {};
for (let i = 0; i < query.length; i++) {
for (let j = 0; j < txnName.length; j++) {
axios.get(`${BASE_URL}/gsa/${query[i]}/${req.params.id}?txnName=${txnName[j]}`).then(res => {
val.type = txnName[i]
val.value = res.data;
s.push(val)
}).catch(e=>{console.error(e)});
}
}
return s;
}
无法在外部访问 s 的值 如何获得 s 的这个值,或者是否有任何替代方法可以编写?另外,由于 axios 是一个异步操作,我得到了多个值,不确定如何在 for-each 循环中处理多个 axios 调用
该query
数组的长度为 6,并且txnName
是一个长度为 8 的数组。当我运行 axios 调用时,理想情况下,我应该得到 48 个响应以及添加到 s[] 数组中的 txnName,它应该看起来像
[
{type : 'a1', value: [object]},
{type : 'a2', value: [object]},
...{type : 'a48', value: [object]}
]
哪里a1...a48
是基于txName
项目。当我运行我的应用程序时,我会在数组中随机获得 0 - 500 多个项目,而不是 48 个,有时应用程序会崩溃。s[] 也应该可用 res.render('template/page', {data: dataVals()})
解决方案
推荐阅读
- splunk-query - 在 splunk 中搜索唯一 IP
- docker - Kubernetes:将 pod STDOUT、STDERR 和 pod 终止日志重定向到 PVC 文件
- java - 动态(以编程方式)创建视图时,视图在卡片视图中重叠
- spring-boot - 无法从 spring 控制器打印 JSP,但结果是在控制台中打印
- java - 上下文:组件扫描在 junit 中不起作用
- php - 如何使用codeigniter同时创建多个excel文件
- javascript - 创建矩形后如何动态附加文本
- sql - 计算一列中的行但在不同的日期
- angular - 是否可以将 amazon cognito 与 Kinesis 数据流一起使用,充当生产者(生产者是 Angular 应用程序)?
- .net - 过滤器的正则表达式