无法解析 JSON 数据以与 rxjs 交互
Posted
技术标签:
【中文标题】无法解析 JSON 数据以与 rxjs 交互【英文标题】:can't parse JSON data to interface with rxjs 【发布时间】:2018-11-26 13:50:50 【问题描述】:我有一个从服务器获取数据的 webSocket。我创建了一个返回数据的 rx Subject MessageEvent。
但是,在我的 observable 上,我可以控制台记录我的对象并打印 json 数据,但我无法访问任何属性,它返回未定义。
export interface Message
request: string;
subscription: string,
@Injectable()
export class SocketProvider
public message: Subject<Message>;
constructor(private socket: WebsocketProvider)
console.log('Hello SocketProvider Provider');
this.message = <Subject<Message>>socket
.connect('ws://192.168.0.110:8081')
.map((response: MessageEvent): Message =>
let data = response.data;
return data;
)
及用法:
ionViewDidEnter()
console.log('ionViewDidEnter ConfigsInputsPage');
this.subscribtion = this.socket.message.subscribe(msg =>
this.message = msg;
console.log("Response From webSocket server: " + msg);
console.log(msg.request);
);
this.socket.message.next(this.enterMessage);
private enterMessage =
request: 'configs',
subscription: 'suscribe'
【问题讨论】:
它返回undefined
在哪里?
console.log("来自 webSocket 服务器的响应:" + msg);返回 json 数据但 console.log(msg.request);返回未定义
那你在哪里初始化this.enterMessage
?
就在它旁边,刚刚在我的帖子中添加了编辑。
在此处添加您的示例响应。 console.log("来自 webSocket 服务器的响应:" + msg);这意味着你得到了这条线。
【参考方案1】:
好的。我在socket.ts中再次添加解析json的发现:
constructor(private socket: WebsocketProvider)
console.log('Hello SocketProvider Provider');
this.message = <Subject<Message>>socket
.connect('ws://192.168.0.110:8081')
.map((response: MessageEvent): Message =>
let data = JSON.parse(response.data); // <----------
return data;
)
【讨论】:
以上是关于无法解析 JSON 数据以与 rxjs 交互的主要内容,如果未能解决你的问题,请参考以下文章
Ionic 4 本机插件地理定位给了我“找不到模块:错误:无法解析 'rxjs/Observable'”