@salco2012

Почему не срабатывает промис?

Вызываю этот метод на хуке createdСрабатывает блок elseдолжно вернуть значение (число) с сервера, но это происходит только после второго обновления. При первом обновлении получаю старое значение. В чем может быть ошибка?
methods: {
    zeroTest() {
      // объект с ключами всех дат по записям пользователя
      const keysDates = this.infoCurrentUser.userСalories;

      /* Получаем ключ последней даты записанной в бд, и переворачиваем его,
    для того чтобы корректно распарсить. */
      const lastRecordedDate = Object.keys(keysDates)[Object.keys(keysDates).length - 1].split('-')
        .reverse()
        .join('-');

      // Возвращаю кол-во миллисекунд последней даты в бд
      const lastDateMseconds = Date.parse(lastRecordedDate);

      // Получаю текущую дату в нужно формате для дельнейшего парсинга.
      const currentData = new Date().toLocaleString().slice(0, 10).split('.')
        .reverse()
        .join('.');

      // Возвращаю кол-во миллисекунд текущей даты
      const currentDataMseconds = Date.parse(currentData);

      // Если текущая дата больше последней, обнуляем счетчик кал.
      if (currentDataMseconds > lastDateMseconds) {
        this.caloriesPerDay = 0;
      } else {
        // В противном случае записываем значение из бд
        return new Promise((resolve) => {
          resolve(this.infoCurrentUser.userСalories[
            Object.keys(keysDates)[Object.keys(keysDates).length - 1]]
            .caloriesEatenPerDay);
        }).then((el) => console.log(el));
      }
      return 0;
    },
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hasalex
разработчик
сделайте без if-else просто промис и посмотрите что там. Имхо первый раз возвращаете 0, второй раз уже значение какое есть
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы