非同期関数のすべての結果を返す関数を記述し、配列にプッシュしてすべての非同期関数の結果を記録するコールバックを実行しようとします。JS:非同期関数で内部関数の引数を取得し、コールバックを実行
すべての料理が終わるとすべての料理を持ってくるウェイター。 結果として返される子の引数を取得する方法を理解できません。タスクと私の働いていないソリューションのコードは以下の通りです:
タスク:
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']
});
私の働いていない解決策:
funcArray.forEach(function(f) {
f(x)
i++;
if(i == 2) {
doneAll(result.arr)
}
});
:
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)
}
});
}
おっと、申し訳ありませんが、 – Octopitus