我目前正在Angular 8中进行网络聊天。我已连接到websocket,并且收到有关某人正在键入消息的信息。它被称为“打字指示器”。每当有人向我输入内容时,我都会获得此信息。不幸的是,我没有收到有人停止打字的信息,我需要实现一种逻辑,如果有人停止打字,我将只显示打字指示符4秒钟。
public showTypingIndicator() {
const currentDate = new Date();
currentDate.setSeconds(currentDate.getSeconds() - 4);
return this.lastTypingDate !== null && this.lastTypingDate > currentDate;
}
我的this.lastTypingDate
我是从服务中获得的,以防万一我在Websocket中收到了一条类型为“ Typing-indicator”的消息,然后将其设置为this.lastTypingDate = new Date();
。这就是我如何通过服务将数据传递到此变量的方法:this.myDateService.getLastTypingDate()
。
这有效,但是它显示我的打字指示符的时间超过4秒。有什么想法可以在此处进行更改以使其按预期工作?
谢谢你!
您可以更改showTypingIndicator
获取器并以秒为单位比较日期。
public get showTypingIndicator() {
const currentSeconds = (new Date()).getTime()/1000;
return this.lastTypingDate !== null && (currentSeconds - (this.lastTypingDate.getTime()/1000)) < 5;
}