我正在使用Fetch API处理请求,我想在禁用互联网时处理错误。但我没有在THEN函数中得到任何响应,并且在CATCH函数中没有错误消息。我该如何处理这个问题。我正在尝试在React Native中做。先谢谢你
答案 0 :(得分:0)
查看React Native提供的 NetInfo
API。在提出请求之前,您应该能够使用isConnected方法检查它是否已连接到互联网。
import {NetInfo} from 'react-native'
NetInfo.isConnected.fetch().then(isConnected => {
console.log('First, is ' + (isConnected ? 'online' : 'offline'));
if (isConnected) {
fetch(...)
}
});
当WiFi关闭时,我能够复制catch
永远不会被调用。如果请求永远不会返回,那么实现这样的解决方案来手动抛出错误可能是一种解决方法。 See this discussion on handling Timeouts with Fetch
let test = () => {
return new Promise((resolve, reject) => {
let id = setTimeout(() => reject('Timeout'),3000)
fetch('https://swapi.co/api/people/1/')
.then(res => {
resolve(res)
clearTimeout(id)
})
.catch(err => {
reject(err)
clearTimeout(id)
})
})
}
test()
.then(() => console.log('************Success'))
.catch(() => console.warn('*************Error'))