2017-01-19 3 views
13

में एक स्थान से सभी अक्षरों को लॉग करने के लिए कैसे करें मैं एक प्रतिक्रिया अनुप्रयोग के लिए अक्षरों का उपयोग कर रहा हूं और मैं ऐप में कहीं भी बना रहे सभी अक्षीय कॉल लॉग करना चाहता हूं। मैं पहले से ही निर्माण फ़ंक्शन के माध्यम से अक्षरों का एक वैश्विक उदाहरण उपयोग कर रहा हूं और मैं एक सामान्य console.log लॉग इन करने में सक्षम हूं। हालांकि मैं समारोह की तरह अधिक जानकारी बुलाया जा रहा है, मानकों, आदि चाहते हैंकोड

उत्तर

21

ऐसा करने का सबसे अच्छा तरीका एक इंटरसेप्टर होगा। प्रत्येक इंटरसेप्टर को अनुरोध/प्रतिक्रिया से पहले बुलाया जाता है। इस मामले में एक लॉगिंग इंटरसेप्टर होगा।

axios.interceptors.request.use(request => { 
    console.log('Starting Request', request) 
    return request 
}) 

axios.interceptors.response.use(response => { 
    console.log('Response:', response) 
    return response 
}) 

या उस प्रभाव के लिए कुछ।

यह है कि आप Axios का एक नया उदाहरण का उपयोग कर रहे अच्छा है:

const api = axios.create({ 
    timeout: 1000 
}) 

इस तरह आप कॉल कर सकते हैं

api.interceptors[...] 
+0

यह नोट करना योग्य हो जाएगा कि बिना 'वापसी response', कोड इंटरसेप्टर –

+0

पर टूट जाएगा 'api.interceptors [...] 'क्या है? –

1

ऐसा लगता है कि आप एक "इंटरसेप्टर" का उपयोग करके सभी अनुरोधों को रोक सकता है, और इसके अंदर प्रवेश करें: https://github.com/mzabriskie/axios#interceptors

2

तुम कोशिश कर सकते लपेट axios.request एक वादा में कार्य करें।

function loggedRequest(config) { 
    return new Promise((resolve, reject) => { 
    axios.request(config) 
    .then((res) => { 
     // log success, config, res here 
     resolve(res);  
    }) 
    .catch(err => { 
     // same, log whatever you want here 
     reject(err); 
    }) 
    }) 
}