如何在React Native中运行耗时的代码

时间:2019-02-08 08:31:53

标签: javascript react-native

我们目前正在开发React Native应用。我们从服务器上获取了一些数据,并且必须对此数据进行大量转换,然后再将其保存到本地数据库(我们正在使用Realm)。

此转换正在进行时(10-20秒),应用无法响应任何导航或按钮按下。

应使用哪种方法从JS线程中卸载此工作(或至少将其拆分为可管理的块)?

我们尝试搜索多线程解决方案,但是,在任何官方场合,它们似乎都不受很好的支持或推荐。这使我们相信我们缺少一个关键概念。

2 个答案:

答案 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中实现并导入。