i use when.js as a promise library for mongoose and try to get distinct filed of collection and return result as promise
mongoose.Promise= require("when");
function getPromisedDistinct(startDate, endDate) {
return when.promise(function(resolve, reject) {
$log.distinct("keys", {
datetime: {
"$gte": startDate,
"$lt": endDate
}
}).exec()
.then(function(res) {
return resolve(res);
});
});
}
however getPromisedDistinct is resolved with promise function
function (resolve, reject) {
if (!_this.op) {
callback && callback(null, undefined);
resolve();
return;
}
_this[_this.op].call(_this, function(error, res) {
if (error) {
callback && callback(error);
reject(error);
return;
}
callback && callback.apply(null, arguments);
resolve(res);
});
}
edit #1 getPromisedDistinct is called as
function agg(day, startDate, endDate) {
return when.promise(function(resolve, reject) {
getPromisedDistinct(startDate, endDate).then(function(keys) {
log.data("keys is : \n" + licence_keys);
}).otherwise(function(keys) {
return reject(err);
});
});
}
why this not resolved to value?