I'm filling an array inside a loop and I need the full array when the loop finishes.
I've tried handling everything through promises or by using a counter but i can't seem to figure out the trick here.
lambda.listFunctions({}).promise()
    .then((data) => {
        data.Functions.forEach(func => {
            lambda.listTags({ Resource: func.FunctionArn }).promise()
                .then((data) => {
                    if ("Edge" in data.Tags) {
                        available_functions.push(func.FunctionName)
                    }
                })
        });
          console.log(available_functions)
    })
available_functions is always empty unless I console log it at the end of each foreach loop and then I have it returning 18 times which is not what I want.
 
     
    