访问MessageEvent的字段

时间:2018-06-01 13:16:03

标签: angular typescript websocket angular6

我有一个Angular 6前端应用程序,它通过Websocket与我的后端进行通信。

当我发送登录请求时,我的后端返回一个JSON对象

{"type":"LoggedIn","value":{"email":"1@1.de","id":9,"name":"1"}}

我现在尝试阅读那里的字段,但我看不到允许我这样做的方法。

到目前为止,我可以使用该函数显示整个后端消息:

  this.socketService.receiveEvents('LoggedIn').subscribe((message: MessageEvent) => {
      console.log('message: ' + message.data);
    });

receiveEvents(完整性原则):

 /**
   * TODO: Implement a paramemter that allows this method to return an Observable
   * TODO: with a filter for relevant events for the calling functions
   * @returns {Observable<Object>}
   */
  receiveEvents(relevantEvent): Observable<Object> {
    return this._subject.asObservable().pipe(filter((event: Event) => event != null));
  }

我怎么能只显示字段&#34; type&#34;或&#34;价值&#34; ?

我已经尝试使用for循环迭代它,但我只收到单个字母。

非常感谢。

1 个答案:

答案 0 :(得分:1)

做到这一点:

interface BackendResponse {

  type: string;
  value: string[];
}

this.socketService.receiveEvents('LoggedIn').subscribe((message: MessageEvent) => {
  const obj: BackendResponse = JSON.parse(message.data);
  console.log(obj.type);
});

这会让你走上正确的道路=)