[英]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連接的readyState
為1
。 如果我按照此處所述使用q.nbind
將find
方法轉換為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.