我正在以Slack的方式实现基本的聊天,而此时我想让用户可以选择彼此私下发消息。
当一个用户向另一个用户发送私人聊天请求并被另一个用户接受时,每个用户的浏览器中应出现一个带有另一个用户名的按钮。
问题在于,此刻,每个用户的界面中都出现一个按钮,但是只有发送请求的用户(用户1)获得了带有其他用户名的按钮,而另一个仅获得了没有文本的按钮。在里面。代码如下:
socket.on("setting up private chat buttons", data => {
privateChannelButton = document.createElement('button');
privateChannelButton.className = "new-button btn btn-dark";
if (localStorage.getItem('userName') == data["user 1"]){
privateChannelButton.innerHTML = data["user 2"];
console.log("case 1 happened");
}
else if (localStorage.getItem('userName') == data["user2"]) {
privateChannelButton.innerHTML = data["user 1"];
console.log("case 2 happened");
}
document.querySelector('#channels').appendChild(privateChannelButton);
});
如果我查看控制台输出的内容,基本上总是“情况1发生”,就好像其中一个浏览器将第一个条件评估为true一样,它们都跳到了下一个代码块,是按钮的添加。为什么会这样?