我有一个帮助函数来处理错误。我试图将此作为参数传递给承诺中的catch
函数:
fetchRecords().then (found) ->
$scope.recprds = found;
.catch( Session.handleError )
.finally( -> $scope.querying = false )
这会被解析为以下Javascript:
fetchRecords().then(function(found) {
return $scope.records = found;
})["catch"](Session.handleError)["finally"](function() {
return $scope.querying = false;
});
由于finally
不属于Session.handleError
函数的属性,因此出现JavaScript错误。
我应该使用不同的语法吗?
答案 0 :(得分:2)
首先:你应该删除;和()不需要它们。
单词try catch,最后是保留字。您应该像coffeescript.org页面上的示例一样使用它们:
fetchRecords().then (found) ->
$scope.recprds = found
.helpercatch Session.handleError
.helperfinally -> $scope.querying = false
如果更改了函数名称,则coffeescript中的链接正在运行。所以你应该重命名你的帮助函数,链接应该可以工作。
fetchRecords().then(function(found) {
return $scope.recprds = found;
}).helpercatch(Session.handleError).helperfinally(function() {
return $scope.querying = false;
});
解析:
Webdriver