Angular Electron app抛出“未实现_transform()方法”错误

Angular Electron app抛出“未实现_transform()方法”错误,angular,typescript,electron,nodes,nodejs-stream,Angular,Typescript,Electron,Nodes,Nodejs Stream,我正在尝试使用node js stream包创建一个自定义解析器, 当我尝试使用const Transform=window.require('electron').remote.require('stream').Transform导入流包时,它抛出了如上所述的错误,即使类中已经存在_Transform方法 如果我只是使用const Transform=require('stream')。Transform的工作很好,但是根据我的要求,我只想使用electron.remote导入它,所以有人可

我正在尝试使用node js stream包创建一个自定义解析器, 当我尝试使用
const Transform=window.require('electron').remote.require('stream').Transform导入流包时,它抛出了如上所述的错误,即使类中已经存在_Transform方法

如果我只是使用
const Transform=require('stream')。Transform的工作很好,但是根据我的要求,我只想使用electron.remote导入它,所以有人可以帮我解决这个问题

custom-parser.ts如下所示:

(node:15092) UnhandledPromiseRejectionWarning: Error [ERR_METHOD_NOT_IMPLEMENTED]: The _transform() method is not implemented
    at Transform._transform (_stream_transform.js:164:6)
    at Transform._read (_stream_transform.js:189:10)
    at Transform._write (_stream_transform.js:177:12)
    at doWrite (_stream_writable.js:418:12)
    at writeOrBuffer (_stream_writable.js:402:5)
    at Transform.Writable.write (_stream_writable.js:302:11)
    at SerialPort.ondata (_stream_readable.js:720:22)
const Transform=window.require('electron').remote.require('stream').Transform
导出类CustomParser扩展了转换{
收入数据:任何=[];
坏数据包:any=[];
packetStartByte=55
packetEndByte='aa'
构造函数(){
超级();
}
/**
*从串行端口获取传入的数据包并进行相应的处理。
*
*@param{Buffer}块
*@param{*}编码
*@param{*}cb
*@memberofcustomparser
*/
_转换(块:缓冲区,编码:任意,cb:任意){
如果(块){
chunk.forEach((字节:any)=>{
this.incomingData.push(byte.toString(16))
});
如果(this.incomingData.length>=10){
设指数=0;
this.incomingData.forEach((字节:any)=>{
让packetEndIndex=index+10-1
if(packetEndIndexparseInt(字节,16));
const buffer=buffer.from(十进制数组)
这个。推(缓冲区)
指数+=10
}否则{
this.badpackes.push(this.incomingData[index])
指数+=1
}
}
});
此.incomingData.splice(0,索引);
this.push(Buffer.from(this.badpackages))
this.badpackages=[]
};
}
cb();
}
_冲洗(cb:任何){
this.incomingData=[];
this.push(this.incomingData);
cb();
}
}
const Transform = window.require('electron').remote.require('stream').Transform

export class CustomParser extends Transform {
    incomingData: any = [];
    badPackets: any = [];
    packetStartByte = 55
    packetEndByte = 'aa'
    constructor() {
        super();
    }

    /**
     *takes incoming packetes from serial port and process accordingly.
     *
     * @param {Buffer} chunk
     * @param {*} encoding
     * @param {*} cb
     * @memberof CustomParser
     */
    _transform(chunk: Buffer, encoding: any, cb: any) {

        if (chunk) {

            chunk.forEach((byte: any) => {
                this.incomingData.push(byte.toString(16))
            });

            if (this.incomingData.length >= 10) {

                let index = 0;
                this.incomingData.forEach((byte: any) => {

                    let packetEndIndex = index + 10 - 1
                    if (packetEndIndex < this.incomingData.length) {

                        if (this.incomingData[index] == this.packetStartByte && this.incomingData[packetEndIndex] == this.packetEndByte) {
                            const hexByteArray = this.incomingData.slice(index, packetEndIndex + 1)
                            const decimalByteArray: [] = hexByteArray.map((byte: string) => parseInt(byte, 16));
                            const buffer = Buffer.from(decimalByteArray)
                            this.push(buffer)
                            index += 10
                        } else {
                            this.badPackets.push(this.incomingData[index])
                            index += 1
                        }
                    }
                });
                this.incomingData.splice(0, index);
                this.push(Buffer.from(this.badPackets))
                this.badPackets = []
            };
        }
        cb();
    }

    _flush(cb: any) {
        this.incomingData = [];
        this.push(this.incomingData);
        cb();
    }
}