我试图从服务器的套接字中获取属性,就像这样
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)
)
}
但它告诉我“声明类型既不是'无效'也不是'任何'的函数必须返回一个值。”我一直在挣扎着想要做出这项工作,并且我已经阅读了很多其他问题而无济于事。控制台记录res确实给了我真或假。
canActivate
返回类型是Observable |承诺|布尔
所以你应该在你的情况下返回一个observable:
canActivate(): Observable<boolean> {
this._chat.isVerified();
}