使用Mongoose和mpromise,我得到一些奇怪的回调行为。查看Promise.prototype.onResolve
的mpromise代码,我不明白为什么函数没有正确应用。
var prom = new mongoose.Promise();
anotherPromise.onResolve(prom.resolve);
另一个促销的onResolve似乎永远不会解决,除非我把它扔进一个匿名函数。
var prom = new mongoose.Promise();
anotherPromise.onResolve(function(err, doc) { prom.resolve(err, doc); });
我在这里误解了什么?
答案 0 :(得分:0)
this
context很重要。您没有传递该特定resolve
的{{1}}方法,而是未通过任何承诺的通用方法,并且在没有(或错误)上下文的情况下调用时将无效。
在您的匿名函数中,您明确调用 on prom
对象上的方法。您也可以使用bind
:
prom