gpt4 book ai didi

android - 如何检查服务器是否可以在 react-native 中访问

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:02 26 4
gpt4 key购买 nike

我想在发出请求之前检查我的应用程序尝试访问的服务器是否可以访问(当互联网可以访问时)。

我正在使用 Fetch API,现在我正在使用运行良好的函数超时,但我的问题是有什么方法可以检查服务器是否可达。

我尝试使用 all-reacheable npm 包并添加了以下代码,但我没有收到任何回调响应。

isReachable([
'http://aposddasd.com',
'http://google.com'
], (err, reachable, host) => {
console.log('Server is' + reachable); //=> false
console.log('App log' + host); //=> 'http://aposddasd.com'
});

你能帮我看看实现这个目标的最佳方法是什么吗?

最佳答案

您可以使用 Promise.race(),它将返回第一个 promise 以解决或拒绝 - 它们实际上非常棒!在此处查看文档:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/race

这是一个在 3 毫秒后超时的简单函数 - 它使用 httpbin 模拟 5 秒的延迟:

const isAvailable = () => {
const timeout = new Promise((resolve, reject) => {
setTimeout(reject, 300, 'Request timed out');
});

const request = fetch('https://httpbin.org/delay/5');

return Promise
.race([timeout, request])
.then(response => alert('It worked :)'))
.catch(error => alert('It timed out :('));
}

isAvailable();

在这里查看 fiddle :https://jsfiddle.net/edcs/8Lcg8a8j/10/

关于android - 如何检查服务器是否可以在 react-native 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41737390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com