簡體   English   中英

貓鼬參考對象找到

[英]Mongoose find with reference to object

我在循環中找到了:

for(var idx in items){
    var item = items[idx];

    Model.find({'_id': item.id}, function(err, matches){
          console.log(item); // Points to the last item in items instead of
                             // expected item, since find is asynchronous
    });
}

如您所見,由於find是異步的,因此無法獲得對var item的可靠引用。

我可以繼續進行操作,並通過回調內的匹配對象在items數組中手動​​查找它,但這似乎並不是一種有效的方法。

如果有任何方法可以將對象“附加”到調用中,那么我可以通過很棒的回調將其返回。

有任何想法嗎 ?

您需要的是一個閉包,因為在調用任何回調之前都將完成循環及其item

for(var idx in items){
  (function(item){
    Model.find({'_id': item.id}, function(err, matches){
      console.log(item);
    });
  })(items[idx]);
}

這應該與以下內容大致相同(假設項目是一個數組):

items.forEach(function(item){
  Model.find({'_id': item.id}, function(err, matches){
    console.log(item);
  });
})(items[idx]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM