簡體   English   中英

貓鼬查找回調未執行

[英]Mongoose Find Callback Not Executing

我一直在緩慢地將大量回調模塊轉換為使用Promise(Q),而Mongoose Models運行find()遇到了一個奇怪的問題。 簡而言之,promise鏈永遠不會超越初始的find命令。 此后,我已將此方法恢復為其回調實現,但仍然看不到回調執行。 我已將其分解為最基本的行為,並且handleMedia函數從未運行過。

function getMediaByURL(url) {
  Media.find({url: url}, handleMedia);

  function handleMedia(err, media) {
    console.log(err);
    console.log(media);
  }
}

數據庫連接是在另一個模塊中創建的,但是我看到所有正確的事情都以正確的順序進行了初始化,在執行find函數之前,Mongoose連接的readyState1 如果我按照此處所述使用q.nbindfind方法轉換為promise並以1秒的間隔記錄該值,則該值始終為{state: 'pending')

我有另一個模型可以通過find的promise版本保存相同的連接。 我很茫然。

您在“查找函數”之后聲明了“ handleMedia函數”,因此僅在未調用代碼的情況下才調用回調函數。在初始化“ handleMedia函數”之后,將首先執行查找函數

所以試試這個

function getMediaByURL(url) {
    function handleMedia(err, media) {
        console.log(err);
        console.log(media);
    }
    Media.find({url: url}, handleMedia);
}

暫無
暫無

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

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