首页 > 解决方案 > 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);

标签: node.jsforeach

解决方案


我是个白痴……想通了。

    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)
            }
        })
    })

推荐阅读