我正在使用 NativeScript 2.0 ,我正在开发 Android 模块,不允许在主线程中运行!
是否有可用于在后台线程中运行函数的模块?
或者是否可以在" native"中使用类似AsyncTask类的内容。 JavaScript代码(不是TypeScript!)?
答案 0 :(得分:5)
nativescript添加了网络工作者。 https://docs.nativescript.org/angular/core-concepts/multithreading-model.html
myWorker.js
在工作人员 require('globals'); // necessary to bootstrap tns modules on the new thread
onmessage = function(msg) {
postMessage('bye');
}
foo(&self) -> &T
答案 1 :(得分:4)
有关背景信息,您可以查看以下文章:http://developer.telerik.com/featured/benefits-single-threading-model-nativescript/
那就是说,目前你最好的选择是使用这个模块来实现和运行WebWorkers:https://github.com/NathanaelA/nativescript-webworkers
答案 2 :(得分:1)
我认为您的答案可以在本文http://developer.telerik.com/featured/benefits-single-threading-model-nativescript/
中找到基本上,目前支持的唯一选择是将代码封装到用原生Android编写的插件中。该团队正在努力支持网络工作者的某种线程选项,但目前还没有任何支持。
答案 3 :(得分:0)
Nativescript演示App单线程模型证明了这一点,因为在UI线程上运行所有内容的速度都非常快。但是,如果需要花时间进行操作的后台任务,Nativescript会介绍Workers API。
我们知道,作为网络世界中的网络工作者。重要的是要记住,每次启动新的辅助线程时,都会增加应用程序的资源和内存占用。
有关进一步的阅读,您可以参考this博客。
答案 4 :(得分:-4)
那么你应该看看网络工作者:
Web Workers为Web内容提供了一种在后台线程中运行脚本的简单方法。工作线程可以在不干扰用户界面的情况下执行任务。
在此处查看更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers