я использую when.js как библиотека посыла для мангустов и попытаться получить отчетливый подал сбора и возврата результата как обещаютMongoose отличаются обещаниями
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);
});
});
}
однако getPromisedDistinct решается с функцией посыла
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);
});
}
редактировать # 1 getPromisedDistinct называется
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);
});
});
}
Почему это не решилось?
я использую 'затем' на возвращенном результате, но разрешенное значение функция обещания –
также вы используете узел, так что если вы на v0.12.x и вы можете использовать нативные обещания – br3w5
'.then (function (keys) {return keys;})' немного анти-шаблон :-) – robertklep