Javascript 来自回调的数据未存储在js中的数组中

Javascript 来自回调的数据未存储在js中的数组中,javascript,node.js,callback,mongoose,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(

下面是我的代码-

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);

};
exports.saveWeekAvailability=函数(请求、回复){
log(“--SAVE WEEK-WISE DATA--”;
weekData=req.body;
var resultar=[];
对于(var i=0;i”);
console.log(resultar);
};

但是每次
resultar
都是一个空数组。让我知道我做错了什么。

这是重复的。如果你想了解正在发生的事情,请检查对你答案的评论,看看重复的帖子,其中包含了一个非常好的答案

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

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));
}
for(变量i=0;i”);
console.log(resultar);
}
});
}(i) );
}

您是否在循环中获取console.logs?@mithunsatheesh是的,我在
console.log(result)中获取结果
但是
resultar
仍然是空的:(Thx..但是说实话,我以前试过谷歌..但不知道这是
关闭的情况
。那么用户如何期望新手用正确的术语搜索然后否决这个问题:(这也是我尝试过的,但没有成功,所以我在这里问@Trialcoder,我在pastebin中阅读了你的代码,你不能从回调中返回值。