繁体   English   中英

mpromise /和尚承诺永远无法解决

[英]mpromise/Monk promise never resolves

我似乎无法弄清楚为什么在我将其传递给函数时我的诺言无法解决。 我有一个这样的类方法:

test(){
    return this.dbCollection.insert(...);
}

这是通过Monk将一些数据插入MongoDB集合中。 它返回一个承诺。 我从另一个这样的类调用此方法:

var testClass = new TestClass();
testClass.test().onResolve(...);

这是我遇到麻烦的地方。 如果我这样做:

testClass.test().onResolve(console.log('Resolved!'));

诺言解决了,我看到了“已解决!” 在控制台中,一切正常。 如果我使用MongoDB控制台进行检查,则可以看到确实插入了数据。 但是,如果我这样做:

testClass.test().onResolve(function(err, data){
    console.log('Resolved!');
});

承诺永远不会解决,控制台上不会打印任何内容,但仍会插入数据。 有人见过这种行为吗? 我相信这是mpromise的问题,因此我为Mongoose加上了标签,因为它使用了相同的承诺包。

感谢@Bergi的帮助。 就像您建议的那样,诺言实际上并没有解决。 事实证明,这是mpromise的all()方法的问题(即,显然我还不完全了解它的工作原理)。 test()使用all()返回了promise的集合,而这是无法解决的。 从等式中删除所有内容后,一切都会按预期进行。 现在找出all()发生了什么...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM