CanActivate:带有套接字监听器的可观察布尔值
CanActivate: Observable Boolean with Socket listener
我正在尝试从服务器的套接字中获取一个 属性,就像这样
isVerified() {
this.socket.emit('verify');
return new Observable<boolean>(observer => {
this.socket.on('isVerified', data => {
observer.next(data)
observer.complete()
})
})
}
数据会 return true 或 false 所以在我的路由守卫中我有这个
canActivate(): Observable<boolean> {
this._chat.isVerified()
.subscribe(
res => {
return res
},
err => console.log(err)
)
}
但它告诉我 "A function whose declared type is neither 'void' nor 'any' must return a value." 我一直在绞尽脑汁想弄清楚如何使这项工作有效,但我已经阅读了很多其他问题但无济于事。控制台日志记录 res 确实给了我 true 或 false。
canActivate
return 类型是 Observable |承诺 |布尔值
所以你应该 return 在你的情况下观察到:
canActivate(): Observable<boolean> {
this._chat.isVerified();
}
我正在尝试从服务器的套接字中获取一个 属性,就像这样
isVerified() {
this.socket.emit('verify');
return new Observable<boolean>(observer => {
this.socket.on('isVerified', data => {
observer.next(data)
observer.complete()
})
})
}
数据会 return true 或 false 所以在我的路由守卫中我有这个
canActivate(): Observable<boolean> {
this._chat.isVerified()
.subscribe(
res => {
return res
},
err => console.log(err)
)
}
但它告诉我 "A function whose declared type is neither 'void' nor 'any' must return a value." 我一直在绞尽脑汁想弄清楚如何使这项工作有效,但我已经阅读了很多其他问题但无济于事。控制台日志记录 res 确实给了我 true 或 false。
canActivate
return 类型是 Observable |承诺 |布尔值
所以你应该 return 在你的情况下观察到:
canActivate(): Observable<boolean> {
this._chat.isVerified();
}