javascript - nativescripts - Ejecutar tareas en el fondo en NativeScript
nativescript tutorial español (4)
Estoy usando NativeScript 2.0 y estoy desarrollando un módulo de Android que NO se puede ejecutar en el hilo principal .
¿Hay algún módulo que pueda usar para ejecutar una función en un hilo de fondo?
¿O es posible usar algo como la clase AsyncTask en el código JavaScript "nativo" (NO en TypeScript)?
Bueno, deberías echar un vistazo a los webworkers:
Web Workers proporciona un medio simple para que el contenido web ejecute scripts en hilos de fondo. El subproceso de trabajo puede realizar tareas sin interferir con la interfaz de usuario.
Ver más información aquí: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers
Creo que su respuesta se puede encontrar en este artículo http://developer.telerik.com/featured/benefits-single-threading-model-nativescript/
Básicamente, la única opción admitida actualmente sería encapsular el código en un complemento escrito en Android nativo. El equipo está trabajando para admitir algún tipo de opción de enhebrado a lo largo de las líneas de los trabajadores de la web, pero no hay nada respaldado en este momento.
Para más información puede echar un vistazo a este artículo: http://developer.telerik.com/featured/benefits-single-threading-model-nativescript/
Dicho esto, actualmente su mejor opción sería utilizar este módulo para implementar y ejecutar con WebWorkers: https://github.com/NathanaelA/nativescript-webworkers
nativescript agregó trabajadores web. https://docs.nativescript.org/angular/core-concepts/multithreading-model.html
var worker = new Worker(''myWorker'');
worker.postMessage(''hello'');
worker.onmessage = function(msg) {
console.log(''answer from worker'',msg.data);
}
en el trabajador myWorker.js
require(''globals''); // necessary to bootstrap tns modules on the new thread
onmessage = function(msg) {
postMessage(''bye'');
}