来自回调的数据不存储在js中的数组上

时间:2014-09-22 10:29:59

标签: javascript node.js callback mongoose

以下是我的代码 -

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都是一个空数组。让我知道我在这里做错了什么。

1 个答案:

答案 0 :(得分: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));
}