Общий родной экземпляр рабочего и основного потока - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу сделать загрузку файла прогрессбара.Вычисление уже загруженного файла должно быть сделано в отдельном потоке.Просто не понятно, как передать переменную manager

main.js

import * as MyWorker from 'nativescript-worker-loader!~/utils/DownloadManagerProgress.js';

const { DOWNLOAD_SERVICE } = android.content.Context;
const manager = app.android.context.getSystemService(DOWNLOAD_SERVICE);

const worker = new MyWorker();
worker.postMessage({ manager });

worker.onmessage = function (event) {
  console.log(event);
};

worker.onerror = function (err) {
  console.log(`An unhandled error occurred in worker: ${err.filename}, line: 
  ${err.lineno} :`);
  console.log(err.message);
};

DownloadManagerProgress.js

import 'globals';


global.onmessage = (msg) => {
  const { manager } = msg.data;
  const query = new android.app.DownloadManager.Query();
  const cursor = manager.query(query);
};

Ошибка:

'Uncaught TypeError: Невозможно прочитать свойство \' query \ 'of undefined'


Если я создаю объект в работнике, также появляется ошибка

DownloadManagerProgress.js

import 'globals';
import * as app from 'application';

global.onmessage = (msg) => {
  const { DOWNLOAD_SERVICE } = android.content.Context;
  const manager = app.android.context.getSystemService(DOWNLOAD_SERVICE);

  const query = new android.app.DownloadManager.Query();
  const cursor = manager.query(query);
};

ошибка:

Uncaught TypeError: Невозможно прочитать свойство \ 'getSystemService \ undefined'

Может помочь мне.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...