簡體   English   中英

Axios攔截器的錯誤處理程序何時被調用?

[英]When does an Axios interceptor's error handler get called?

我已經設置了axios攔截器,目的是在任何請求都未收到響應時將全局加載變量設置為true。 在我的應用程序中,這將阻止用戶提交表單,這在很多情況下可能會導致錯誤,因為尚未處理所有數據。

代碼是:

var numberOfAjaxCAllPending = 0;
// Add a request interceptor
window.axios.interceptors.request.use(function (config) {
    numberOfAjaxCAllPending++;
    console.log('Request:  ---- ' + numberOfAjaxCAllPending);
    return config;
}, function (error) {
    return Promise.reject(error);
});

// Add a response interceptor
window.axios.interceptors.response.use(function (response) {
    numberOfAjaxCAllPending--;
    console.log('Pending Response (response): ---- ' + numberOfAjaxCAllPending);
    return response;
}, function (error) {
    numberOfAjaxCAllPending--;
    console.log('Pending Response (error): ---- ' + numberOfAjaxCAllPending);
    return Promise.reject(error);
});

global.loading = numberOfAjaxCAllPending > 0;

發出請求后,待處理的計數器將遞增,而響應以遞減的形式返回。 大於0的值表示請求仍在等待處理中。

我對每個承諾的錯誤部分感到困惑。 我必須將減量掛起添加到響應錯誤,以便它可以捕獲非200個響應。

對於該請求,我假設如果有錯誤,則該請求將不會發送,並且不會收到響應。 這個對嗎?

在請求攔截器上,如果您不想等待響應,則還需要減小該值。

請求攔截器中的函數將在請求之前被調用。

收到響應后,將調用響應攔截器中的函數。

也就是說,如果在調用請求攔截器后發生錯誤,則需要減少該值。 如果在請求攔截器之前發生錯誤,則無需減少它。

它僅取決於錯誤發生的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM