我们目前正在开发React Native应用。我们从服务器上获取了一些数据,并且必须对此数据进行大量转换,然后再将其保存到本地数据库(我们正在使用Realm)。
此转换正在进行时(10-20秒),应用无法响应任何导航或按钮按下。
应使用哪种方法从JS线程中卸载此工作(或至少将其拆分为可管理的块)?
我们尝试搜索多线程解决方案,但是,在任何官方场合,它们似乎都不受很好的支持或推荐。这使我们相信我们缺少一个关键概念。
答案 0 :(得分:1)
您熟悉Web Workers吗?它们提供了一种在网页上运行JavaScript的线程外方法。
如果您搜索“ React Native Web Workers”,那么将在React Native中提供许多资源来完成此任务。 Here's one example利用React Native的WebView组件提供Web Worker功能。
也请参见:Creating Web Worker in React Native Android app,尽管它没有提到上面文章中提到的简单WebView解决方案。
答案 1 :(得分:0)
至少,您必须退出JS进行繁重的处理。这就是构建本机模块的目的。 https://facebook.github.io/react-native/docs/native-modules-ios。诸如图像处理或多线程之类的事情应在C ++或Swift中实现并导入。