异步函数中的随机输出

时间:2018-03-17 16:22:32

标签: javascript asynchronous

我有以下功能,我需要加上阵列的总烹饪时间。问题是有时候我得到了未定义,有时我得到正确的值,即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);
}

0 个答案:

没有答案