В настоящее время я работаю над проектом, включающим nativescript- vue и машинописный текст , и я должен работать с worker (я не очень хорошо знаком с NS и worker). Я прочитал do c и попробовал реализацию, указанную в документации NS, и адаптировал ее к проекту, но, похоже, я не могу понять это правильно ... Действительно, сначала он работает, но после нескольких вызовов метода которые создают экземпляр рабочего и управляют им, приложение аварийно завершает работу без ошибки ... Я не знаю, связано ли это с тем, что рабочий процесс действительно не закрывается после завершения своей задачи, или из-за проблема с самим скриптом ...
это часть кода main.ts
import "tns-core-modules/globals"
export class Main extends Vue {
worker: Worker
onTaskReceived(task){
this.manageWorker(task, this.worker)
}
manageWorker(task: any, worker: Worker){
const NewWorker = require('nativescript-worker-loader!./worker.ts')
worker = new Worker()
worker.postMessage({
type: "task",
value: task
})
worker.onerror = await function (err) {
console.log(`An unhandled error occurred in worker: ${err.filename}, line: ${err.lineno} :`);
console.log(err.message);
worker.terminate()
}
worker.onmessage = function (message) {
console.log('{onmessage}')
worker.terminate()
}
}
}
и это код одного из воркеров (worker.ts)
import "tns-core-modules/globals"
import { error } from "tns-core-modules/trace";
const context: Worker = self as any;
context.onmessage = function(task) {
const request = task.data
console.log('[WORKER]: data from main received')
console.log(request)
# Here is the code that the worker execute when triggered
if (result.state === 'done') {
console.log('[WORKER]: work done - sending data back')
context.postMessage({
type: 'result',
succeed: true,
value: result
})
}
}
context.onerror = function (error) {
console.log('[WORKER]{ERROR} '+error)
}
export default {} as typeof Worker & (new () => Worker)
заранее благодарю за помощь :)