Det problem, du har, er, at mongoose-forespørgsler ikke returnerer fuldgyldige løfter -- direkte citerende https:// 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'));
Med andre ord, then funktion er syntaks sukker og ikke et promise hvilket er grunden til bind og andre løftefunktioner virker ikke.
For at få det til at virke, pakker du det enten ind i et fuldt løfte eller bruger exec fungerer som foreslået i dokumenterne