Angular Typescript将字符串转换为对象错误
当我将响应json从websocket服务器转换为ts对象时,我遇到了一个基本问题,但是我找不到错误在哪里。。。 你能帮我修一下吗 以下是websocket服务器:Angular Typescript将字符串转换为对象错误,angular,typescript,Angular,Typescript,当我将响应json从websocket服务器转换为ts对象时,我遇到了一个基本问题,但是我找不到错误在哪里。。。 你能帮我修一下吗 以下是websocket服务器: const wsServer: Server = new Server({port: WEBSOCKET_PORT}); console.log('WebSocket server is listening on port 8085'); export class PushData { constructor(public p
const wsServer: Server = new Server({port: WEBSOCKET_PORT});
console.log('WebSocket server is listening on port 8085');
export class PushData {
constructor(public push: string,
public workflowId: number) {
}
}
wsServer.on('connection', (websocket, req) => {
websocket.send('This message was pushed by WebSocket server');
websocket.send('Data pushed by server: ');
websocket.on('message', (message) => {
console.log('Server received : %s', message);
const todaysDate = new Date();
// websocket.send('Data pushed by server: ' + todaysDate.toString());
const request1 = new PushData('data', 30);
websocket.send(JSON.stringify(request1));
}
}
这是客户
班级服务:
private faceSubject = new BehaviorSubject<any>(null);
createObservableSocket(url: string): Observable<string> {
this.ws = new WebSocket(url);
return new Observable(
observer => {
this.ws.onmessage = (event) => observer.next(event.data);
this.ws.onerror = (event) => observer.error(event);
this.ws.onclose = (event) => observer.complete();
}
);
}
这里我总是得到te data.push=未定义。
您能告诉我如何将websocket响应转换为object吗?编辑:
当服务器从客户端接收到消息时,它只会推送一个PushData对象,但它会在连接时向客户端发送两个字符串。这就是为什么要获取data.push是未定义的,因为数据只是字符串
websocket.send('This message was pushed by WebSocket server');
websocket.send('Data pushed by server: ');
您需要从客户端发出消息才能接收pushData对象 问题是什么还不清楚。什么是console.log'receivedtatafromserver',data?好的,谢谢,我更新了我的答案,我认为这是一种特殊的依赖注入语法。我学到了一个新东西,非常感谢!很高兴这有帮助。是的,它广泛用于角度DI,但它是TS特性。我想你对问题的原因是正确的。在这种情况下,你能告诉我如何将字符串转换为object吗?我曾尝试使用数据强制转换,但它不起作用;我还试图使用JSON.parsedata创建一个对象,但我得到了一个错误:JSON中的意外标记t位于位置0。
export class PushData {
constructor(public push: string, public workflowId: number) {}
}
websocket.send('This message was pushed by WebSocket server');
websocket.send('Data pushed by server: ');