Необходимо отправлять запросы на сервер, пока он не вернет ответ, например: {tickets: [], stop: true}
Вот мой код, который возвращает неопределенное значение:
getTickets(prevToken) {
const token = prevToken ? prevToken : await this.getToken();
const response = await fetch(`https://front-test.beta.aviasales.ru/tickets?searchId=${token}`);
if (response.ok) {
let tickets = await response.json();
return tickets.tickets;
} else if (response.status == '404') {
await this.getTickets()
} else {
await this.getTickets(token);
}
}
async getToken() {
const token = await fetch('https://front-test.beta.aviasales.ru/search');
const tokenId = await token.json();
return tokenId.searchId;
}
async componentDidMount() {
const tickets = await this.getTickets();
this.setState(state => ({
tickets: tickets
}))
}
В противном случае, если я запускаю такой код:
getTickets(prevToken) {
const token = prevToken ? prevToken : await this.getToken();
const response = await fetch(`https://front-test.beta.aviasales.ru/tickets?searchId=${token}`);
if (response.ok) {
return tickets.tickets;
} else {
await this.getTickets(token);
}
}
async componentDidMount() {
const tickets = await this.getTickets();
this.setState(state => ({
tickets: tickets
}))
}
он возвращает правильное значение. Как решить эту проблему?