Сообщение от destus
|
okuznetsov1,
А, ну да, input -- сериализуемым оъектом должен быть, для ф-ции не подходит. Тогда твой 1 вариант, ок.
А зачем вообще эту ф-цию в scope объявлять и пытаться передавать? Может лучше сделать чистую функцию, объявить её в теле самого воркера и применять? А Content как раз передавать первым параметром run().
|
Я вчера ещё объявил эту функцию в теле воркера и применял, всё работало и думал на этом варианте остановиться. Но поразмыслив, пришёл к выводу, что на всякий случай лучше передавать эту функцию в воркер, т.к. в ближайшем будущем в функционале системы могут появится ещё воркеры которые будут использовать эту же функцию, и придётся её дублировать.
вроде получилось как хотел, сделал так:
передаю в воркер:
var bodyFuncParseCSV = eval($scope.parseCSV).toString();
var param = { content: $fileContent, funcParseCSV: bodyFuncParseCSV };
return angularWorker.run(param);
в теле воркера вызываю так:
var Items = eval('var parseCSV = ' + input.funcParseCSV + '; parseCSV(input.content);');
Не знаю костыль это или нет, как вы считаете?