我有以下功能,我需要加上阵列的总烹饪时间。问题是有时候我得到了未定义,有时我得到正确的值,即65。 任何人都知道最新情况怎么样?谢谢你的时间。
function cookingTime(cook) {
console.log(cook);
}
const arr = ['meat', 'carbs', 'veg'];
function cookDinner(arr, cb) {
let mealsProcessed = 0;
arr.forEach(meal => {
cookMeat((err, meat) => {
meat;
mealsProcessed++;
cookCarbs((err, carbs) => {
carbs;
mealsProcessed++;
cookVeg((err, veg) => {
veg;
mealsProcessed++;
if (mealsProcessed === arr.length) {
let result = meat + carbs + veg;
cb(result)
};
});
});
});
});
};
console.log(cookDinner(arr, cookingTime));
以下是我要回电的功能:
function cookMeat (cb) {
setTimeout(function () {
cb(null, 30);
}, Math.random()*1500);
}
function cookCarbs (cb) {
setTimeout(function () {
cb(null, 20);
}, Math.random()*100);
}
function cookVeg (cb) {
setTimeout(function () {
cb(null, 15);
}, Math.random()*1000);
}