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

Javascript: Setting parameters to functions that are being passed as a paramater

本文关键字:函数 设置 参数 参数传递 Javascript      更新时间:2023-09-26

我有一个类错误Hander,它定义了以下函数:

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 函数中定义的附加参数。我想设置回调和消息参数。

这可能吗?

这是一个纯 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 with errorHandler.errorCallbackPartial(someCallback, someMessage),回调和消息是由你编写的。然后它将按预期工作。