иначе, если оператор не оценивается в клиентском браузере - javascript socket.io - PullRequest
0 голосов
/ 11 июня 2019

Я реализую базовый чат в стиле 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, оба переходят к следующему блоку кода, который это добавление кнопки. Почему это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...