2
我使用when.js作爲一個承諾庫,貓鼬,並試圖讓不同的申請收集,並返回結果作爲承諾貓鼬明顯輕諾
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);
});
});
}
爲什麼這不解決價值?
我使用'then'對返回的結果,但解析值是承諾的功能 –
還你使用節點,所以如果你在v0.12.x你可以使用原生承諾 – br3w5
'.then(function(keys){return keys;})'是一種反模式:-) – robertklep