Вы можете написать довольно простой патч для axios.interceptors.response.use()
, скажем axios.interceptors.response.use_()
.
. После инициализации axios установите следующее:
axios.interceptors.response.use_ = function(onFullfilled, onRejected) {
axios.interceptors.response.use(
// onFullfilled
function(response) {
try {
return onFullfilled(response);
}
catch(e) {
return onRejected(e);
}
},
// onRejected
onRejected,
)
};
Патч реализуеттот же интерфейс, что и у оригинала .use()
.После установления перехватов с помощью .use_()
вместо .use()
, если ваши onFullfilled()
броски (умышленно или в другое время), тот же обработчик onRejected
будет вызываться так, как если бы отказ был перехвачен.
Этосуть этого все равно.
Если существует вероятность того, что любой из обработчиков будет использовать ключевое слово this
, тогда предполагаемый this
необходимо будет указать с помощью Function .prototype .call () :
axios.interceptors.response.use_ = function(onFullfilled, onRejected) {
axios.interceptors.response.use(
// onFullfilled
function(response) {
try {
return onFullfilled.call(this, response);
}
catch(e) {
return onRejected.call(this, e);
}
},
// onRejected
onRejected
)
};