【发布时间】:2015-08-03 22:30:10
【问题描述】:
我的代码要点如下:
function checkWinRate(array){
var winCount = 0;
var totalCount = 0;
db.collection.find(query).each( function(foo){
if (condition){
winCount++;
}
totalCount++;
db.close();
});
return winCount/totalCount;
}
这里明显的问题是,在return语句中,winCount和totalCount仍然等于0。我正在尝试使用Q Promise库来整理一系列事件,但我不确定如何实现它.谁能告诉我如何处理 Q?
编辑
ID:10T 错误。我忘了我正在使用僧侣包装。对于那些想知道我做了什么来解决这个问题的人,和尚有一种很好的方式来处理承诺,如下所示:
function checkWinRate(array){
var winCount = 0;
var totalCount = 0;
var promise = db.collection.find(query).each( function(foo){
if (condition){
winCount++;
}
totalCount++;
db.close();
});
promise.success(function(){
return winCount/totalCount);
}
}
【问题讨论】: