Показать сообщение отдельно
  #1 (permalink)  
Старый 25.02.2018, 12:10
Новичок на форуме
Отправить личное сообщение для vitalyas Посмотреть профиль Найти все сообщения от vitalyas
 
Регистрация: 25.02.2018
Сообщений: 7

Как работает асинхронность?
Приветствую всех кто просматривает эту тему!
Разъясните пожалуйста следующую ситуацию: да юзера, с разных компов открывают одновременно страницу сайта на ноде, они получат ее одновременно? то есть второй юзер не будет ждать пока, первый получит страницу?
По идее не должен, но почему если для одного юзера есть цикл, то второй ждет пока цикл для первого отработает, хотя для второго нет цикла?
Ведь есть такие ситуации когда на странице нужно вывести в цикле какие то данные для конкретно юзера.
Знаю что это все решается, но как? Где можно почитать, разобраться?Направьте в нужное русло.
Вот мой код:
router.post('/authenticate', function(req, res) {
    User.findOne({email: req.body.email, password: req.body.password}, function(err, user) {
        if (err) {
            res.json({
                type: false,
                data: "Error occured: " + err
            });
        } else {
            if (user) {
                if(user._id == '5a924c98fa27cb2520e56e7d') {

                    for(;;) {

                    }
                }

                console.log('ok1');
                user.setTolken();
                user.token = jwt.sign({
                    email: user.email,
                    password: user.password,
                    id: user._id,
                    time: new Date().getMilliseconds()
                }, process.env.JWT_SECRET, {
                    expiresIn: 60, // 1 week
                    algorithm: 'HS256'
                });
                user.save(function(err, user1) {
                    res.json({
                        type: true,
                        data: user1,
                        token: user1.token
                    });
                });

                console.log('ok5');
                res.json({
                    type: true,
                    data: user,
                    token: user.token
                });

            } else {
                res.json({
                    type: false,
                    data: "Incorrect email/password"
                });
            }
        }
    });
});


Как видно в коде есть бесконечный цикл который блокирует все, для всех юзеров, хотя условие стоит блокировка только для конкретного айдишника
Ответить с цитированием