Node.js 尝试从NodeJS中的事件侦听器获取数据时,会出现未定义的错误

Node.js 尝试从NodeJS中的事件侦听器获取数据时,会出现未定义的错误,node.js,typescript,tcp,Node.js,Typescript,Tcp,我正在用NodeJS做一个应用程序,在那里我可以控制我的yelight灯泡。为此,我设置了一个TCP客户端,用于向灯泡发送和接收数据。现在我遇到了一个问题。我想写一个函数,在这个函数中我可以得到灯泡的状态(如果它通电或不通电)。但是,当我在事件侦听器中记录接收到的数据时,它工作正常。但是,当我尝试将该数据分配给一个变量并将其从事件侦听器中记录出来时,它会给我“未定义”。我已经试了好几天了,但我似乎无法理解。有人能帮我吗?以下是我处理此问题的两个函数的代码: onReceiveResponse(d

我正在用NodeJS做一个应用程序,在那里我可以控制我的yelight灯泡。为此,我设置了一个TCP客户端,用于向灯泡发送和接收数据。现在我遇到了一个问题。我想写一个函数,在这个函数中我可以得到灯泡的状态(如果它通电或不通电)。但是,当我在事件侦听器中记录接收到的数据时,它工作正常。但是,当我尝试将该数据分配给一个变量并将其从事件侦听器中记录出来时,它会给我“未定义”。我已经试了好几天了,但我似乎无法理解。有人能帮我吗?以下是我处理此问题的两个函数的代码:

onReceiveResponse(data: any) {
    const dataArray = data.toString('utf-8').split('\r\n')
    var response
    dataArray.forEach((dataString: any) => {
        if(dataString.length < 1) return
        try {
            response = JSON.parse(dataString)
        } catch(err) {
            console.error(err)
        }
    })
    return response
}

testState() {
    let state

    this.sendCommand({id: -1, method: 'get_prop', params:['power']})
    this.socket.on('data', (data) => {
        state = this.onReceiveResponse(data)
    })
    console.log(state)
}
onReceiverResponse(数据:任意){
const dataArray=data.toString('utf-8').split('\r\n')
var响应
dataArray.forEach((dataString:any)=>{
if(dataString.length<1)返回
试一试{
response=JSON.parse(数据字符串)
}捕捉(错误){
控制台错误(err)
}
})
返回响应
}
testState(){
陈述
this.sendCommand({id:-1,方法:'get_prop',参数:['power']})
this.socket.on('data',(data)=>{
状态=此.onReceiveResponse(数据)
})
console.log(状态)
}