react-native网络请求Fetch中遇到的坑

本文探讨了在网络请求工具中缺乏超时时间设置的问题,并提供了两种解决方案:一是通过JavaScript的Promise.race方法实现网络请求与计时器的竞争,二是利用原生方法进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.没有网络超时时间字段
身为一个官方的网络请求工具居然没有网络请求超时的字段,这样是实在说不过去的。这给我们开发过程中带来了很多不必要的麻烦。比如,想做一个loading工具,可是不知道不知道什么时候是网络超时,什么时候网络异常,这个就尴尬了!

解决方案:
1.js端来解决
使用fetch请求的时候通常返回的是一个promise对象,然后再去解析这个promise对象,才能得到的我们需要的东西。而promise里面存在一个非常好用的方法就是race,就是几个promise在一起竞速,谁跑的快,以谁为准执行回调。
Promise
.race([runAsync1(), runAsync2(), runAsync3()])
.then(function(results){
console.log(results);
});
可以创建两个promise对象,一个负责网络请求,另一个负责计时,如果超过这个时间,就会先回调计时的promise,代表网络超时。

2.原生来解决
http://blog.youkuaiyun.com/vv_bug/article/details/61920337

http://lib.youkuaiyun.com/article/reactnative/55885

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值