繁体   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