我正在尝试像这样从服务器的套接字中获取属性
isVerified() {
this.socket.emit('verify');
return new Observable<boolean>(observer => {
this.socket.on('isVerified', data => {
observer.next(data)
observer.complete()
})
})
}
数据将返回true或false,因此在我的路由守卫中我拥有此
canActivate(): Observable<boolean> {
this._chat.isVerified()
.subscribe(
res => {
return res
},
err => console.log(err)
)
}
但是它告诉我“一个声明类型既不是'void'也不是'any'的函数必须返回一个值。”而且我一直在head头,试图弄清楚这项工作,而且我读过许多其他问题都无济于事。控制台日志记录资源确实给我带来了真还是假。
答案 0 :(得分:2)
canActivate
返回类型为可观察|承诺|布尔值
因此,您应该返回一个可观察的值:
canActivate(): Observable<boolean> {
this._chat.isVerified();
}