@nezzard

Как сделать if else внутри promise then?

Добый вечер, есть
return 	Promise.all(myRequests)
.then((arrayOfHtml) => arrayOfHtml.map(result => result.data))
.then((arrayOfHtml) => {

тут if else

}).catch(function(e){
//error
});


Суть в чем, у меня в if идет проверка если есть элемент в json массиве, если нету тогда else, так вот если if отдает ошибку, то скрипт сразу прыгает на catch
У меня в if else есть переменная, допустим test, мне нужно если все хорошо присвоить true в противном случае false
  • Вопрос задан
  • 745 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
если if отдает ошибку

Какую ошибку, что переменная не существует? Так проверяйте на существование еще одним if'ом.

Увлекся, написал формочку поиска по артисту с кучей проверок. Не уверен что покрыл все случаи отсутствующих ключей, но вроде работает. https://jsfiddle.net/Stalk/cv3h0yrb/
Ответ написан
@nezzard Автор вопроса
return 	Promise.all(myRequests)
.then((arrayOfHtml) => arrayOfHtml.map(result => result.data))
.then((arrayOfHtml) => {
  //Пытаемся получить картинку от ласт фм, если нету, выдаем пустую строку
  if(arrayOfHtml[0].results.artistmatches.artist[0]['image'][2]['#text']){
     last = arrayOfHtml[0].results.artistmatches.artist[0]['image'][2]['#text'];
   }else {
      last = false;
   }
   
  if(last) {
  	some();
  }
  
  })
  .catch(function(e){
     //Ловим ошибку 
     console.log(chalk.red("Ошибка   " +e));
  });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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