@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;
    },
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hasalex
разработчик
сделайте без if-else просто промис и посмотрите что там. Имхо первый раз возвращаете 0, второй раз уже значение какое есть
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы