Обновлено:
У меня есть классы машинописного текста, в которых есть функции, и я могу передать эти классы, используя postMessage fine. Но следующий класс с переменной, которая является функцией, терпит неудачу.
Для кода ниже вызов doitSuccess() преуспевает. Вызов doitFails() вызывает исключение "не может сериализоваться". Я также успешно прошел объекты, которые являются классами типов, которые имеют функции в классе. Кажется, что проблема заключается в переменной-члене, назначенной функции.
Любая идея почему?
Обновление: Возможно, это обсуждается в этом сообщении.
function defaultToString(item: any): string {
return "dave";
}
export class WorkerApi {
private worker:Worker;
constructor () {
worker = new Worker("my-worker.js");
}
public doitFails() : void {
var ll = { name : "dave", toStr: defaultToString};
this.worker.postMessage(ll);
}
public doitSuccesss() : void {
var ll = { name : "dave"};
this.worker.postMessage(ll);
}
}
Возможно, неправильно this
. Исправление:
function defaultToString(item: any): string {
return "dave";
}
export class WorkerApi {
private worker:Worker;
public doit = () => { // fix
var ll = { name : "dave", toStr: defaultToString};
this.worker.postMessage(ll);
}
}
PS: видео на this
https://www.youtube.com/watch?v=tvocUcbCupA&hd=1
doit