Javascript:将参数设置为作为参数传递的函数

时间:2015-01-19 11:30:40

标签: javascript angularjs performance

我有一个类errorHander,它定义了以下函数:

function handleError(errorData, callback, message) {

我现在可以将handleError函数作为参数传递给可以使用函数来处理错误消息的函数。例如:

var signboards = devicesService.query()
        .$promise.then(function success(data) {
            console.log(data);
            $scope.devices = data;
        }, errorHandler.handleError);

运行回调函数,并将第一个变量(errorData)设置为从服务器返回的任何错误信息。完整写出成功函数以显示参数传递的方式。

问题是,我想设置我原来的handleError函数中定义的附加参数。我想设置回调和消息参数。

这一切都可能吗?

1 个答案:

答案 0 :(得分:1)

这里是纯js的演示,但应该很容易移植:

http://plnkr.co/edit/4xB5JkXPvxK4mhCW66ik?p=preview

您可以使用以下功能执行类似部分的操作:

$scope.errorCallback = function(errorData, callback, message) { ... }
$scope.errorCallbackPartial = function(callback, message) {
   return function(errorData) {
       errorCallback(errorData, callback, message)
   }
}

因此,在您的示例中,errorHandler.handleError包含errorHandler.errorCallbackPartial(someCallback,someMessage),其中回调和消息由您编写。然后它将按预期工作。

相关问题