【发布时间】: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);这意味着你得到了这条线。
标签: json typescript interface rxjs