веб-работник postMessage () создает исключения для функций в классе - иногда

-1

Обновлено:

У меня есть классы машинописного текста, в которых есть функции, и я могу передать эти классы, используя 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);
    }
}
  • 0
    Вы должны опубликовать код, который на самом деле вызывает doit
  • 0
    @RyanCavanaugh - я расширил это выше. Я пытался свести его к соответствующему коду. Я вызываю postMessage () нормально, если у меня нет члена, которому назначена функция.
Теги:
web-worker
postmessage

1 ответ

0

Возможно, неправильно 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

  • 0
    Я вызываю postMessage () нормально, если у меня нет переменной-члена, которой назначена функция, поэтому я знаю, что это нормально, как и все остальное.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню