如何在Web Worker中包含Angular的formatNumber函数管道?

时间:2018-09-29 10:21:41

标签: angular typescript web-worker

我开始学习如何使用网络工作者,并且正在使用XOR problem solvable with 2x2x1 neural network without bias?软件包来帮助完成我的组件。

我希望能够在Web Worker中使用Angular的formatNumber管道函数以及Web Worker中的其他项目管道,如下所示:

import { formatNumber } from '@angular/common';

@Component({
    selector: 'my-component',
})
export class MyComponent implements OnInit {
    dataToManipulate: any;
    constructor(
        private webWorkerService: WebWorkerService, // From NPM: Angular2-Web-Worker
        private customPipe: CustomPipe,
    ) { }

    ngOnInit() {
        this.workerStart();
    }
    private workerFunction(input) {
        const data = input.dataToManipulate;
        const customPipe = input.customPipe;
        const formatNumber = input.formatNumber;
        let result;
        // Work
        // customPipe()
        // formatNumber()
        return result;
    }
    workerStart() {
        this.webWorkerService.run(this.workerFunction,
            {
                dataToManipulate: this.dataToManipulate,
                customPipe: this.customPipe.transform,
                formatNumber: formatNumber,
            }
        ).then(data => {
            console.log('Work Complete');
        });
    }
}

但这会导致以下错误:

  

DataCloneError:无法在“ Worker”上执行“ postMessage”:

我了解到,尽管网络工作者在通过Angular2-Web-Worker发送值时使用structured clone algorithm,但不允许通过函数发送函数。

如何将我的customPipe和Angular的formatNumber函数发送到Web Worker线程中?可能的话,我也在寻找答案中的可行演示。

0 个答案:

没有答案