Показать сообщение отдельно
  #7 (permalink)  
Старый 06.03.2024, 14:30
Аватар для borus
Кандидат Javascript-наук
Отправить личное сообщение для borus Посмотреть профиль Найти все сообщения от borus
 
Регистрация: 07.12.2012
Сообщений: 147

Сообщение от Nexus
borus, а почему вы считаете, что функция getGoodsList должна вернуть вам результат строки 18, а не 15 например?
потому что возвращаться должен результат последнего then, насколько понимаю.
Получается функцию getGoodsList() правильнее написать так:
function getGoodsList(step = 0) {
  return fetch(`http://localhost:3000/api/products?status=200`)
    .then(res => {
      if (res.status === 404) {
        return {}
      }
      if (res.status === 500) {
        if (step < 2) {
          getGoodsList(step++);
        }
        else {
          createMessage('Произошла ошибка, попробуйте обновить страницу позже');
        }
      }
      return res.json();
    })
    .then (json => {
      if (!(!json.products || json.products.length === 0)) return json;
    })
    .catch(error => {
      console.log(`Error name is: ${error.name}, error message is: ${error.message}`);
    });
}

?
Ответить с цитированием