जब एपीआई लाने जावास्क्रिप्ट के साथ एक सर्वर से अनुरोध कर रहा है, तो आप की तरहजावास्क्रिप्ट fetch API से प्रतिक्रिया ऑब्जेक्ट एक वादा क्यों है?
fetch(API)
.then(response => response.json())
.catch(err => console.log(err))
यहाँ कुछ करने के लिए, response.json()
अपने वादे को हल किया गया है।
बात यह है कि यदि आप 404
की त्रुटियों को पकड़ना चाहते हैं, तो आपको प्रतिक्रिया वादे को हल करना होगा और फिर लाने का वादा अस्वीकार करना होगा, क्योंकि यदि नेटवर्क त्रुटि हो तो आप केवल catch
में समाप्त हो जाएंगे। तो fetch कॉल
fetch(API)
.then(response => response.ok ? response.json() : response.json().then(err => Promise.reject(err)))
.catch(err => console.log(err))
कुछ ऐसा कुछ कठिन और पढ़ने के लिए कठिन है। तो मेरा सवाल है: इसकी आवश्यकता क्यों है? प्रतिक्रिया मूल्य के रूप में वादा करने का क्या मतलब है? क्या इसे संभालने के लिए कोई बेहतर तरीका है?
प्रतिक्रिया वस्तु एक वादा नहीं है। यह एक प्रतिक्रिया है, 'जेसन' (और दूसरों के बीच एक तरीका जो वादा करता है। क्या आपका सवाल है कि 'जेसन()' एक वादा क्यों देता है? –
बिल्कुल एक डुप्लिकेट नहीं है, लेकिन आप [यहां] देखना चाहते हैं (http: //stackoverflow.com/a/32516463/3887516) – Amit
क्या आपको वास्तव में 404 प्रतिक्रिया की सामग्री की आपकी आवश्यकता के रूप में आवश्यकता है? यदि नहीं, तो आप जो चाहते हैं उसे हासिल करने के सरल तरीके हैं। यदि आप करते हैं, तो मुझे कुछ भी दिखाई नहीं देता 'fetch' कैसे काम करता है के साथ गलत। – Bergi