इंटरसेप्टर

आप अनुरोधों या प्रतिक्रियाओं को then या catch द्वारा प्रबंधित किए जाने से पहले इंटरसेप्ट कर सकते हैं।

use फ़ंक्शन, प्रॉमिस के पूरा होने या अस्वीकार होने पर चलाए जाने वाले हैंडलर्स की सूची में एक हैंडलर जोड़ता है। हैंडलर को पूरे और अस्वीकृत फ़ंक्शन द्वारा परिभाषित किया जाता है।

एक वैकल्पिक options ऑब्जेक्ट है जिसे तीसरे पैरामीटर के रूप में पास किया जा सकता है। यदि सिंक्रोनस विकल्प सत्य है, तो synchronous। यदि सिंक्रोनस विकल्प असत्य है, तो हैंडलर को एसिंक्रोनस के रूप में परिभाषित किया जाता है। यदि सिंक्रोनस विकल्प प्रदान नहीं किया गया है, तो हैंडलर को एसिंक्रोनस के रूप में परिभाषित किया जाता है। runWhen यह नियंत्रित करेगा कि प्रदान किया गया इंटरसेप्टर कब चलेगा। एक ऐसा फ़ंक्शन प्रदान करें जो यह तय करेगा कि उसे चलना चाहिए या नहीं, यह true या false लौटाएगा, डिफ़ॉल्ट रूप से हमेशा true होता है।

// एक अनुरोध इंटरसेप्टर जोड़ें
axios.interceptors.request.use(function (config) {
// अनुरोध भेजे जाने से पहले कुछ करें
return config;
}, function (error) {
// अनुरोध त्रुटि के साथ कुछ करें
return Promise.reject(error);
},
{ synchronous: true, runWhen: () => /* यह फ़ंक्शन true लौटाता है */}
);

/ एक प्रतिक्रिया इंटरसेप्टर जोड़ें
axios.interceptors.response.use(function onFulfilled(response) {
/ 2xx की सीमा के भीतर आने वाला कोई भी स्थिति कोड इस फ़ंक्शन को ट्रिगर करता है
/ प्रतिक्रिया डेटा के साथ कुछ करें
return response;
}, function onRejected(error) {
/ 2xx की सीमा से बाहर आने वाला कोई भी स्थिति कोड इस फ़ंक्शन को ट्रिगर करता है
/ प्रतिक्रिया त्रुटि के साथ कुछ करें
return Promise.reject(error);
});

सामान्य परिस्थितियों में, onFulfilled प्रतिक्रिया इंटरसेप्टर केवल 2xx रेंज में प्रतिक्रियाओं के लिए ही कॉल किया जाता है, अन्यथा onRejected को कॉल किया जाता है। हालाँकि, यह व्यवहार validateStatus पर निर्भर करता है। उदाहरण के लिए, यदि validateStatus को हमेशा true लौटाने के लिए सेट किया गया है, तो onFulfilled को सभी प्रतिक्रियाओं के लिए कॉल किया जाएगा।

यदि आपको बाद में किसी इंटरसेप्टर को हटाने की आवश्यकता हो, तो आप ऐसा कर सकते हैं।

const myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);

आप axios के कस्टम इंस्टेंस में इंटरसेप्टर जोड़ सकते हैं।

const instance = axios.create();
instance.interceptors.request.use(फ़ंक्शन () {/*...*/});