पकड़ें मैं कुछ एपीआई कॉल को प्रतिक्रिया-मूल में बनाने के लिए fetch का उपयोग कर रहा हूं, कभी-कभी यादृच्छिक रूप से fetch सर्वर को अनुरोध नहीं करता है और मेरे बाद या ब्लॉक को छोड़कर नहीं कहा जाता है। यह यादृच्छिक रूप से होता है, मुझे लगता है कि दौड़ की स्थिति या कुछ समान हो सकता है। एक बार अनुरोधों को विफल करने के बाद, ऐप को फिर से लोड करने तक एक ही एपीआई के अनुरोध कभी नहीं निकाल दिए जाते हैं। किसी भी विचार इस के पीछे कारण का पता लगाने के लिए कैसे। मेरे द्वारा उपयोग किया गया कोड नीचे है।देशी फ़ेच को प्रतिक्रिया दें या फिर
const host = liveBaseHost;
const url = `${host}${route}?observer_id=${user._id}`;
let options = Object.assign({
method: verb
}, params
? {
body: JSON.stringify(params)
}
: null);
options.headers = NimbusApi.headers(user)
return fetch(url, options).then(resp => {
let json = resp.json();
if (resp.ok) {
return json
}
return json.then(err => {
throw err
});
}).then(json => json);
इस तरह कैच ब्लॉक जोड़ने का प्रयास करें: .catch (error => त्रुटि) –
क्या यह केवल तब होता है जब क्रोम में डिबगिंग होती है? यदि ऐसा है, तो मैं [इस मुद्दे] से संबंधित हो सकता हूं (https://github.com/facebook/react-native/issues/6679)। 'SetTimeout (() => null, 0) जोड़ने का प्रयास करें;' 'resp.json()' से पहले। – ncuillery
@ncuillery आपकी प्रतिक्रिया के लिए धन्यवाद, यह केवल क्रोम में नहीं हो रहा है, यह ऐप के टेस्ट बिल्ड में भी होता है। मैंने आपके द्वारा उल्लेखित मुद्दे को देखा है, लेकिन मेरा थोड़ा अलग था। उस मुद्दे में resp, json() विधि ब्लॉक लेकिन मेरे मामले में, तब ब्लॉक को कभी निष्पादित नहीं किया जाता है, भले ही fetch विधि को कई बार कहा जाता है। –