【发布时间】:2017-04-26 21:40:47
【问题描述】:
我正在构建一个简单的聊天应用程序,使用 socket io angular 2(typescript) 和 nodejs 作为后端服务器 我有这个功能,当我点击连接按钮时效果很好
connectUser(name){
if (name == null || name == ""){
return console.log('you must enter a valid username');
}
this.username = name;
this.socket.emit('add-user',name);
//load connected users in the user-window section
this.socket.emit('request-users',{data:'request users success'});
var connecctedUsersListener$ = Observable.fromEvent(this.socket,'users');
connecctedUsersListener$.subscribe((observer:any)=>{
this.users = observer;
},(err)=>{
if(err) throw err;
},()=>{
console.log('complet');
});
//load messages and keep track of Them
this.socket.emit('request-messages',{data:'request Messages success'});
var messageListener$ = Observable.fromEvent(this.socket,'message');
messageListener$.subscribe((observer:any) =>{
this.messages = observer;
})
}
但是,每当用户尝试连接时,我都会尝试使用 bootbox.prompt,所以我将所有代码包装在这个简单的函数中
addUser(){
bootbox.prompt('what is your name ',function(name){
connectUser(name); // this is the function in the first code snippet
});
}
我收到这个奇怪的错误 无法读取未定义的属性“发射” 我该如何解决这个问题?这里有什么问题?
【问题讨论】:
标签: angular typescript socket.io