@fOrZe0

Вернуть значение из функции?

Хочу вернуть значение data из следующей функции, которая обращается к серверу. Понимаю, что функция асинхронная,может можно какой-то костыль придумать?
getDetails(id){ 
         fetch(<URL, по которому обращаюсь>)
            .then(response => {
                    if (response.status !== 200) {
                        console.log('Код ошибки : ' +
                            response.status);
                        return;
                    }
                   
                    response.json().then(data => {
                        // data нужно вернуть
                    });
                }
            )
            .catch(function(err) {
                console.log('Fetch Error :-S', err);
            });
    };
  • Вопрос задан
  • 73 просмотра
Решения вопроса 2
rockon404
@rockon404
Frontend Developer
async getDetails(id) {
  const response = await fetch();
  if (response.status !== 200) {
    console.log('Код ошибки : ', response.status);
    return;
  }
  try {
     const data = await response.json();
     return data;
  } catch (err) {
    console.log('Fetch Error :-S', err);
  }
}


Естественно вызывать надо так:
this.getDetails(id).then(data => { });

или в асинхронной функции:
const data = await this.getDetails(id);
Ответ написан
Комментировать
async getDetails(id) {
        let response = await fetch('...'),
            data     = await response.json();

        return data;
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы