2014-09-22 37 views
-2

继阵列上的存储是我的代码 -数据不是JS

exports.saveWeekAvailability = function(req, res){ 
    console.log("-- SAVE WEEK WISE DATA --"); 

    weekData = req.body; 
    var resultArr = []; 
    for(var i=0; i< weekData.length; i++){ 
     Availability(weekData[i]).save(function(err, result){ 
      console.log("------------------------------------------"); 
      console.log(result); 
      resultArr.push(result); 
     }); 
    } 
    console.log("-- Result Arr --"); 
    console.log(resultArr); 

}; 

但每次resultArr是一个空数组时间。让我知道我在这里做错了什么。

+0

你得到的内部循环的console.logs? – mithunsatheesh 2014-09-22 10:31:59

+0

@mithunsatheesh是我在'console.log(结果);'但是'resultArr'仍然是空的:( – Trialcoder 2014-09-22 10:38:32

回答

1

这是重复的。如果您想了解正在发生的事情,请在您的答案中检查评论以获得重复的帖子,其中包含非常好的答案。

你的问题的快速解决方案:

for(var i=0; i< weekData.length; i++){ 
    (function(j) { 
     Availability(weekData[i]).save(function(err, result){ 
      console.log("------------------------------------------"); 
      console.log(result); 
      resultArr.push(result); 
      if (j == weekData.length - 1) { 
       console.log("-- Result Arr --"); 
       console.log(resultArr); 
      } 
     }); 
    }(i)); 
} 
+0

Thx ..但是非常诚实的我尝试了ang谷歌搜索之前..但不知道这是一个案例'封闭'..所以用户期望从新手搜索正确的术语,然后downvote的问题:( – Trialcoder 2014-09-22 10:50:02

+0

这是我也试过,但没有运气,所以我问这里http://pastebin.com/Zu0D7bVg – Trialcoder 2014-09-22 10:52:07

+0

@Trialcoder,我在pastebin中读取你的代码,你不能从回调中返回一个值。 – fmsf 2014-09-22 10:53:53