react native 中的并行获取请求

2022-01-20 00:00:00 fetch javascript react-native

我正在 react native 中开发一个新应用程序,我需要将 20 次获取 并行到我的 api 中.当我在电话间隙中进行开发时,我可以创建 20 个 web workers 来让 Ajax 调用并行发生.当我在 react native 中并行执行 20 fetches 时,看起来每次获取都比以前花费更长的时间.就像它有一个提取队列并且它不会一起运行它们.

I am developing a new app in react native and I need to make 20 fetches to my api in parallel. When I developed in phone gap, I could create 20 web workers for the Ajax calls to happen parallel. When I am executing 20 fetches in parallel in react native it looks like every fetch is taking longer than the one before. Like it has a queue of fetches and it won't run them together.

有没有办法解决这个问题?现在,在我的 phonegap 应用程序 中完成提取需要 1 分钟,它需要 10 秒..非常感谢您的帮助

Is there any way to solve this? Now it takes like 1 minute to finish the fetches when in my phonegap app it takes like 10 secs.. Help would be much appreciated

推荐答案

iOS 中每个主机的连接数限制为四个.您需要在 NSURLSession 中增加 HTTPMaximumConnectionsPerHost.

The number of connections per host is limited to four in iOS. You need to increase HTTPMaximumConnectionsPerHost in NSURLSession.

测试这个丑陋的方法是直接将以下行添加到 node_modules/react-native/Libraries/Network/RCTHTTPRequestHandler.m:NSURLSessionConfiguration

The ugly way to test this is to directly add the following line to node_modules/react-native/Libraries/Network/RCTHTTPRequestHandler.m: NSURLSessionConfiguration

[configuration setHTTPMaximumConnectionsPerHost:25];

阅读更多:https://developer.apple.com/documentation/foundation/nsurlsessionconfiguration/1407597-httpmaximumconnectionsperhost?language=objc

相关文章