node.js - node.js 中 Scope 和 for.each 的问题
问题描述
好的,我对大多数事情编码都是一个菜鸟,但是我在自学方面取得了一些成功,但我很难过。我需要在我的一些代码中添加一个 forEach 循环,我知道我可以手动输入两次而不是使用循环,但这并没有教给我任何东西。
因此,我有以下代码有效,并在执行下一个块之前等待一分钟(API 要求)
async function main() {
systemOps(function(data){
console.log('Updating Operations Data...')
if (data == null) {
console.log('No Operations Data Received for period requested.')
}
else {
updateDBOps('system_operations',data)
}
})
}
await sleep(60000);
...next function here...
}
我想要做的是能够运行相同的代码,但将位置变量从位置数组传递给 systemOps 函数,并为每个位置提取数据,中间等待 60 秒。
从本质上讲,我正在尝试以一种完全不正确的方式来做到这一点:
locations = [location1, location2]
async function main() {
locations.forEach(location => //This is not correct, i know...but how do I do this...can't seem to sort it
systemOps(function(location,data){
console.log('Updating Operations Data...')
if (data == null) {
console.log('No Operations Data Received for period requested.')
}
else {
updateDBOps('system_operations',data)
}
})
}
await sleep(60000);
解决方案
我是个白痴……想通了。
OpsLocations.forEach(location => {
OpsDownloader(location,'operation',function(data){
console.log('Updating Operations Data from ....')
if (data == null) {
console.log('No Operations Data Received for period requested.')
}
else {
updateDBOps('operations',data)
}
})
})
推荐阅读
- c++ - Bind() Windows Socket 适用于 IPv4 但不适用于 IPv6
- linux - 无法将文件 rsync 到 AWS:没有这样的文件或目录
- c# - 在安装自己的包时自动安装第三方 NuGet 包
- php - 导入大量数据并返回而不存储
- ios - 编码新手,我的 segues 在模拟时不起作用
- excel - 工作表选择更改的错误处理程序
- java - Java Spring App - RequestParam 映射为我自己的对象
- python - Pygame不更新键盘事件,只更新鼠标
- javascript - 无法在反应中解构变量
- angularjs - 运行函数时出现“ReferenceError:未定义角度”?