我正在构建一个在其中运行多个函数的函数,但我希望输出是单个变量的值。当使用咖啡脚本时,我无法指定我想要返回的值,因此它返回多个函数。
我编写代码的方式很可能是错误的,所以请随意提出建议。
当我执行该功能的控制台日志时,我得到这样的输出
Object {then: function, catch: function, finally: function}
我想要的唯一回报是ShopAverages的价值,所以我希望有一个数字。
这是咖啡脚本中的功能
KPIaverage = (period, KPIName, params) ->
Sads.shops.getList(params).then (data) ->
shops = data.map((d) ->
new ScopeShopWithMetrics(d, $scope.organizations.current)
)
$q.all(shops.map((d) ->
d.getAverages period
)).then ->
shopSUM = 0
i = shops.length
shopSUM += shops[i]["metrics"][KPIName]["value"] while i--
ShopAverage = shopSUM / shops.length
这是我在使用http://js2coffee.thomaskalka.de/
时获得的转换后的JS输出var KPIaverage;
KPIaverage = function(period, KPIName, params) {
return Sads.shops.getList(params).then(function(data) {
var shops;
shops = data.map(function(d) {
return new ScopeShopWithMetrics(d, $scope.organizations.current);
});
return $q.all(shops.map(function(d) {
return d.getAverages(period);
})).then(function() {
var ShopAverage, i, shopSUM;
shopSUM = 0;
i = shops.length;
while (i--) {
shopSUM += shops[i]["metrics"][KPIName]["value"];
}
return ShopAverage = shopSUM / shops.length;
});
});
};
使用angularjs如果有所作为