У меня есть 2 версии одинаковых функций извлечения, первая использует обещания, вторая async-await.Насколько я понимаю, между этими двумя не должно быть никакой разницы, поэтому я был бы признателен за разъяснение того, что на самом деле здесь происходит.
Следующая версия, которая использует async-await, устанавливает состояние к моменту запуска журнала консоли.:
async fetchPostList(query) {
const response = await fetch(`https://hacker-news.firebaseio.com/v0/${query}.json`)
const data = await response.json()
this.setState({ postList: data });
console.log(this.state.postList);
}
Консоль: Array(474) [ ... ]
Версия, использующая обещания, устанавливает состояние после журнала консоли:
fetchPostList(query) {
fetch(`https://hacker-news.firebaseio.com/v0/${query}.json`)
.then( response => response.json())
.then( data => this.setState({ postList: data }))
console.log(this.state.postList);
}
Консоль: Array []