Проблема с областью действия и для каждого в node.js - PullRequest
0 голосов
/ 30 марта 2020

Хорошо, я абсолютный нуб с большинством вещей, кодирующих, но у меня был некоторый успех в обучении, но я в тупике. Мне нужно добавить forEach l oop к некоторому моему коду, и я знаю, что могу просто дважды напечатать это вручную вместо использования al oop, но это меня ничему не учит.

Итак, у меня есть следующий код, который работает и ждет одну минуту, прежде чем выполнить следующий блок (требования 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 сек c между ними.

По сути, я пытаюсь сделать это, в псевдо-не совсем правильном виде:

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

1 Ответ

0 голосов
/ 30 марта 2020

Я идиот ... понял это.

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