Не могу получить promise response — javascript promisejavascript

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


На данный вопрос уже ответили:

Хочу понять, как решить данную проблему. Суть в том, чтобы проверять дни по порядку на выходной-рабочий, пока в массиве не будет 3 рабочих дня, и возвращать последний. Проект на Angularjs 1.5, возможно, нужно писать как-то по-другому, используя $q, но я в этом пока новичок, поэтому буду благодарна за подсказку оптимального решения. Заранее большое спасибо

function  getFinePlanDateTo() {
  let from = new Date(), workingDates = []
  let lastDay;
  getResult(from, workingDates, lastDay).then((resp)=>{
    console.log("resp", resp) // здесь не та дата
  });
}
        
        
function getResult (from, workingDates, lastDay) {
  from = new Date(from.setDate(from.getDate() + 1));
  return isWorkingDay(from).then(function (result) {
    if (result && result.working) {
      workingDates.push(from);
      lastDay = workingDates[workingDates.length - 1];
    }
    if (workingDates.length < 3) {
      getResult(from, workingDates, lastDay);

    } else {
      console.log(lastDay) // здесь дата верная, ее надо вернуть
      return lastDay
    }
    return lastDay

  })

}

 function isWorkingDay(day) { //сервис, который возвращает объект типа {working:true/false}
   return service.workingDay(day).then(function (result) { 
    return result
  })

}
Автор вопроса: Екатерина Иштырякова

Чтобы получить последний рабочий день по-идее надо переписать метод так

function getResult (day) {
    return isWorkingDay(day).then(function (result) {
        if (result && !result.working) {
            return new Date(day.setDate(day.getDate() - 1))
        } else {
            let newDay = new Date(day.setDate(day.getDate() + 1));
            return getResult(newDay);
        }
    }
}

Источник

Вам также может быть интересно:

Drag and Drop UWP — c# xaml mvvm
Вопрос: Нужно иметь возможность добавлять изображения в приложение путем перетаскивания из файловой системы У Grid включил AllowDrop. Но как добавить перетаскиваемые изображения в коллекцию? Т.к. те ...
Растягивание Высоты , Резина — html css html5
Вопрос: Здравствуйте! Реализовал резиновый дизайн. Растягивается ширина, но длина по % не растягивается. Возможно ли это реализовать? Или так и задумано, растягивание только на ширину ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
requestAnimation и очередность отрисовки — javascript canvas
Вопрос: Здравствуйте! Реализовал 2D игру и в Edge работает все плавно и круто, но в Firefox'e подвисает, сказали, что нужно сделать, чтобы раз-два момент и все ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
ViewPager внутри ViewPager — такие матрешки работают? — android viewpager
Вопрос: Доброго времени суток. Назрела новая задача. Есть каталог мастеров. При выборе конкретного мастера открывается его страница (активити с ViewPager), и теперь мастеров можно перелистывать свайпом. ...
Почему id всегда 1 Yii2 — yii авторизация
Вопрос: Использую все как по документации. Для получения информации о пользователе использую $identity = $model->findOne(]); И каким бы не был email, id пользователя всегда ...

Оставьте ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *