Ich versuche, die Funktion zu schreiben, die alle Ergebnisse asynchroner Funktionen zurückgibt und einen Rückruf ausführt, der in ein Array einschiebt und das Ergebnis jeder asynchronen Funktion protokolliert.JS: Innere Funktionsargumente in asynchronen Funktionen erhalten und Rückruf ausführen
Als Kellner, der alle Gerichte bringt, wenn sie alle fertig sind. Ich verstehe nicht, wie die untergeordneten Argumente erhalten werden, die als Ergebnis zurückgegeben werden sollen. Der Code der Aufgabe und meine nicht funktionierende Lösung ist unten:
Die Aufgabe:
var dishOne = function(child) {
setTimeout(function() {
child('soup');
}, 1000);
};
var dishTwo = function(child) {
setTimeout(function() {
child('dessert');
}, 1500);
};
waiter([dishOne, dishTwo], function(results) {
console.log(results); // console output = ['soup', 'dessert']
});
Meine nicht funktionierende Lösung:
function child(arg) {
this.arr.push(arg)
}
function waiter(funcArray, doneAll) {
var result = {
arr: []
};
let i = 0;
const x = child.bind(result)
funcArray.forEach(function(f) {
f(x)
i++;
if(i == 2) {
doneAll(result.arr)
}
});
}
oops, sorry, ich missverstand nur die Frage – Octopitus