Как я могу восстановить свой код? Предупреждение: было создано обещание

#javascript

#javascript

Вопрос:

С некоторых пор у меня такая ошибка в консоли, и я действительно не понимаю, что происходит и как я должен это исправить. Ошибка:

может кто-нибудь показать мне, как написать это лучше?

 Warning: a promise was created in a handler at /Users/pietrzakadrian/Desktop/bankApplicationOfficial/server/controllers/user.controller.js:119:16 but was not returned from it, see
    at Function.Promise.attempt.Promise.try (/Users/pietrzakadrian/Desktop/bankApplicationOfficial/node_modules/bluebird/js/release/method.js:29:9)
  

и это мой код, и я добавил комментарий к строке, где должна быть ошибка?

 // Login Action
exports.login = (req, res) => {
  function getTodayDate() {
    const today = new Date();
    return today;
  }

  function getToken(userId) {
    const token = jwt.sign(
      {
        id: userId,
      },
      env.SECRET_KEY,
      {
        expiresIn: '60min',
      },
    );
    return token;
  }

  User.findOne({
    where: {
      login: req.body.login,
    },
  })
    .then(isUser => {
      if (isUser) {
        if (bcrypt.compareSync(req.body.password, isUser.password)) {
          User.update( // <- this
            {
              last_present_logged: getTodayDate(),
            },
            { where: { login: req.body.login } },
          ).then(() => {
            res.status(200).json({
              success: true,
              token: getToken(isUser.id),
            });

          });
        } else {
          User.update(
            {
              last_failed_logged: getTodayDate(),
            },
            { where: { login: req.body.login } },
          ).then(() => {
            res.status(200).json({
              error: 'Auth failed. The password is incorrect.',
              success: false,
            });
          });
        }
      } else {
        res
          .status(200)
          .json({ error: 'Auth failed. User does not exist', success: false });
      }
    })
    .catch(() => {
      /* just ignore */
    });
};
  

Комментарии:

1. Мне кажется, что у вас есть уловка без попытки.

Ответ №1:

В документации Bluebird (ознакомьтесь с примерами в: раздел Объяснения предупреждений гласит :

Обычно это означает, что вы просто забыли где-то оператор return, что приведет к невыполнению обещания, которое не связано ни с какой цепочкой обещаний.