我正在尝试使用findOne
获取一个数组并将其传递给另一个函数。我可以通过控制台记录阵列,但是在findOne函数之外无法访问。
function getOutfits(id, callback) {
Outfit.findOne({ _id: id }, function (err, userObj) {
if (err) {
return callback(err);
} else if (userObj) {
return callback(null, userObj);
} else {
return callback();
}
});
}
var query = getOutfits(req.user.id, function (error, outfitList) {
var outfitArray = [];
for (i of outfitList.outfits) {
var obj = i.items;
outfitArray.push(obj);
};
console.log(outfitArray);
// Logs [ ["5c25108207c4dd627126a1a5","5c25109c07c4dd627126a1a6"], ["5c25108207c4dd627126a1a5"] ]
return outfitArray;
});
console.log(query)
// Logs undefined
console.log(query)
始终返回undefined,即使我返回的是outfitArray
。
我是JavaScript的新手,正在努力回避回调。我非常感谢您的解释。