[英]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.