Показать сообщение отдельно
  #11 (permalink)  
Старый 09.02.2017, 15:38
Аспирант
Отправить личное сообщение для okuznetsov1 Посмотреть профиль Найти все сообщения от okuznetsov1
 
Регистрация: 02.11.2016
Сообщений: 65

Сообщение от destus Посмотреть сообщение
okuznetsov1,
не понял этих костылей с new Function. Если мне надо передать просто функцию, то я её объявлю в основном потоке и передам параметром. А если нужно передать функцию и ещё что-то, то лучше сформировать объект и его передавать
var obj = {
  parseCSV: $scope.parseCSV,
  foo: 'bar'
}
angularWorker.run(obj)
попробовал и получаю ошибку:

DOMException [DataCloneError: "The object could not be cloned."
code: 25
nsresult: 0x80530019
location: http://www.xxx.com/anguler-tasks-con...kers.min.js:1]


а если сделать так, то функция отрабатывает :

var param = { content: $fileContent, funcParseCSV: "function parseCSV(content) { console.log('ok'); } parseCSV();" };
angularWorker.run(obj);

а в воркере:

eval(input.funcParseCSV);


Но мне так не хотелось бы делать, т.к. лучше вариант - определить эту функцию внутри worker-a

Последний раз редактировалось okuznetsov1, 09.02.2017 в 15:41. Причина: внёс небольшие поправки
Ответить с цитированием