Node.js Mongoose find()并附加到数组

Node.js Mongoose find()并附加到数组,node.js,mongoose,ecmascript-6,Node.js,Mongoose,Ecmascript 6,我尝试从数据库异步检索一些数据,然后将这些值附加到我需要的数组中,用于其他用途,我有以下函数: function retrieveProduct(SKU, callback) { Products.find({ SKU: key }, function (err, doc) { if (err) { callback(err, null); } else { callback(null, doc[0]); } }); } 我是这样用的: for (var ke

我尝试从数据库异步检索一些数据,然后将这些值附加到我需要的数组中,用于其他用途,我有以下函数:

function retrieveProduct(SKU, callback) {
Products.find({
  SKU: key
}, function (err, doc) {

  if (err) {
    callback(err, null);
  } else {
    callback(null, doc[0]);
  }
});
}
我是这样用的:

for (var key in orders) {

retrieveProduct(key, function (err, doc) {
  if (err) {
    console.log(err);
  }
  products_found[key] = doc
  console.log(doc);
});

}
console.log(products_found);
}
其中,
orders
是ID列表

问题是,当我尝试将
doc
附加到
products\u发现
时,没有附加任何内容,控制台也没有记录任何内容。此外,ESlint告诉我不要在循环中生成函数


我做错了什么?

您介意改用Promissions吗?同样在第一个函数中,您传递了
SKU
,但我猜是使用了
键。我注意到,即使我使用
.then()
我仍然会遇到同样的问题。我肯定错过了什么。