あなたが抱えている問題は、マングースのクエリが本格的な約束を返さないことです- http://を直接引用しますmongoosejs.com/docs/promises.html (v4.7.6)
// A query is not a fully-fledged promise, but it does have a `.then()`.
query.then(function (doc) {
// use doc
});
// `.exec()` gives you a fully-fledged promise
var promise = query.exec();
assert.ok(promise instanceof require('mpromise'));
つまり、then
関数はシンタックスシュガーであり、promise
ではありません これがbind
の理由です およびその他のpromise関数は機能しません。
それを機能させるには、完全な約束でそれをまとめるか、exec
を使用します ドキュメントで提案されているように機能する