2015-11-26 3 views
2

У меня есть функция обработки глобальных ошибок для запроса $ http.

var errorHandler = function (err) { 
    // log the error 
    return {status: err.status, data: {result: -1}} 
} 

var get = function (url) { 
    var i = 1  // I have a temp variable here, and want to pass it to errorHandler 

    return $http({ 
     method: 'GET', 
     url: ***, 
     timeout: 5000, 
    }).then(function (response) { 
     // do some thing 
     return response 
    }, errorHandler) 
} 

Как передать переменную i в errorHandler? Я знаю, что могу это сделать:

var get = function (url) { 
    var i = 1  // I have a temp variable here, and want to pass it to errorHandler 
return $http({ 
    method: 'GET', 
    url: ***, 
    timeout: 5000, 
}).then(function (response) { 
    // do some thing 
    return response 
}, function (err) { 
    // log the error 
    console.log('i', i) // access i 
    return {status: err.status, data: {result: -1}} 
    }) 
} 

Но если я хочу использовать глобальную ErrorHandler, что я должен делать?

==============

Update:

Согласно ответу Leandro Zubrezki, мы можем сделать это следующим образом:

var errorHandler = function (err, i) { 
    // log the error 
    return {status: err.status, data: {result: -1}} 
} 

var get = function (url) { 
    var i = 1  // I have a temp variable here, and want to pass it to errorHandler 

    return $http({ 
     method: 'GET', 
     url: ***, 
     timeout: 5000, 
    }).then(function (response) { 
     // do some thing 
     return response 
    }, function(error){ 
     errorHandler(error, i) 
    }) 
} 

Этот это глупый вопрос от новичка. :)

+0

все, что вы хотите сделать, это обычный метод для обработки ошибок .. если вам нужна я только для этой страницы или бизнеса, то как же оно станет общим ?? если вы говорите, что я могу передать какое-то значение, тогда попробуйте использовать это 'errorHandler (err, {i: i});' catch добавить параметр значения в этот метод –

+0

@AnikIslamAbhi, можете ли вы дать мне образец, я пробовал свой метод , он не может работать. – Leon

ответ

2

Делают это так:

function(error) { 
    errorHandler(error, i); 
} 
+0

ваш ответ имеет смысл для меня, я попробую, спасибо! – Leon

+0

Пожалуйста, добавьте объяснение, почему это решает проблему OP. Помогите другим понять. – APC

+0

@ APC, я буду обновлять позже. – Leon

Смежные вопросы