Ich versuche auf array
von out of loop zuzugreifen, aber es scheint etwas falsch zu sein. Was habe ich verpasst? Wie soll ich das machen?node.js Funktion gibt leer
funcA(){
return new Promise((resp, rej) => {
var list = [1,2,3,4,5];
var array = [];
list.forEach(i => {
funcB(i).then(num => {
array.push(num);
console.log(array) //=> [1,2,3,4,5]
})
});
console.log(array) //=> []
resp(array) //=> []
})
}
funcB(i){
return new Promise((resp, rej) => {
resp(i);
})
}
Mögliche Duplikat [How gebe ich die Antwort von einem asynchronen Anruf zurück?] (https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – str
'funcB' ist async . Also, Sie müssen warten (Hinweis: 'Promise.all') für all die Versprechen von' funcB' und * dann * do 'resp (array)'. –
Mögliches Duplikat von [Wie man auf das Versprechen der Funktion in JavaScript wartet] (https://stackoverflow.com/questions/47773824/how-to-wait-for-functions-promise-in-javascript) – Stamos