Closed garmoshka-mo closed 9 years ago
смысл этого условия в проверки была ли получена последняя не истекшая сессия. Так как сессия может храниться в памяти и чтобы ее извлечь будет необходимо время (т.е. будет асинхронная операция и обработка сообщения будет проходить асинхронно function handleChatSessionAsync) следовательно условие не выполнится (будет равно undefined). Такие ситуации возникают, когда допустим вы пишите человеку, а он только открыл приложение. Ваше сообщение приходит, приложение определяет, что у вас был с ним чат, он не истек и сессия хранится с памяти, и оно асинхронно достает сессию со стореджа, а потом обрабатывает сообщение. Когда придет сообщение в следующий раз, сессия уже будет в оперативной памяти и условие сработает.
Такой код не годится - это адовая каша по монитору - в скоупе есть переменная, но непонятно можно ли ей пользоватья и в какой момент
Для этого существует парадигма деления логики на классы и ее инкапсуляция - чтобы все условности были скрыты внутри а из вне вызывалось всегда одно
Есть чат, который занимается внутри себя сессиями, а во вне имеет предельно простой, интуитивно понятный интерфейс Тот, кто работает с чатом, вообще ничего не знает о том, что у чата, оказывается внутри еще и сессии бывают - для него это черный ящик - он только вызывает методы чата. lastUnexpiredChatSession - переделать на приватную переменную - var lastUnexpiredChatSession = ...;
Нужно прорефактроить это в рамках #1
https://github.com/garmoshka-mo/nepotom/blob/master/www/js/services/userService.js#L244
В чем смысл этого условия?