Comment utiliser la fonction promise dans la boucle forEach pour remplir un objet

Je suis en cours d'exécution d'une boucle forEach sur un tableau et de faire deux appels qui, de retour de promesses, et je veux remplir un objet dire this.optionset ensuite faire d'autres choses avec elle. Droit maintenant, je suis en cours d'exécution dans le async problème si j'utilise l'exemple de code suivant et je le puis, fonction première.

$.when.apply($, someArray.map(function(item) {
    return $.ajax({...}).then(function(data){...});
})).then(function() {
    //all ajax calls done now
});

Ce travail est de code ci-dessous, mais il ne fonctionne que pour le premier élément dans le tableau, parce que j'appel la fonction obtenue dans le .then de la réponse. Je veux faire tout le parcours de la première pour tous les éléments de la matrice, puis d'appeler la fonction résultant de faire quelque chose.

array.forEach(function(element) {
    return developer.getResources(element)
        .then((data) = > {
            name = data.items[0];
            return developer.getResourceContent(element, file);
        })
        .then((response) = > {
            fileContent = atob(response.content);
            self.files.push({
                fileName: fileName,
                fileType: fileType,
                content: fileContent
            });
            self.resultingFunction(self.files)
        }).catch ((error) = > {
            console.log('Error: ', error);
        })
});

Comment dois-je remplir le self.files objet après la boucle forEach est complet, et ensuite appeler la fonction obtenue avec les fichiers d'objet?

source d'informationauteur rond