У меня не работает оператор сравнения,скажите почему?

let topka = new Promise(function(resolve, reject) {
  let date = new Date();
  let num18 = new Date();
  num18.setHours(18, 0);

  let num8 = new Date();
  num8.setHours(8, 0);

  if (num8 < date.getHours() < num18) {
    console.log('Идёт загрузка данных...');
    setTimeout(() => {
      resolve('Данные загружены успешно');
    }, 2000);
  } else {
    console.log("Сервер не работает");
    reject("Данные не загружены, произошла ошибка");
  }
})

topka.then(date => console.log(date))
  .catch(err => console.log(err))
  .finally(() => console.log('А я просто finally'));

В if должно быть false, а там true


Ответы (1 шт):

Автор решения: Leonid
if(num8 <  date.getHours() && date.getHours() < num18)

new Boolean(3 < 6 < 2);  //(true)  (3 < 6 => true) => (true < 2 => true) (1 < 2)
new Boolean(3 < (6 < 2)); //(false) (6 < 2 => false) => (3 < false => false) (3 < 0)
new Boolean((3 < 6) < 2); // (true) то же что в первом случае
→ Ссылка