Синхронно
Действие — это то, что мы можем ожидать почти немедленно, это то, что JS знает, сколько времени это займет, поэтому он может подождать до этого момента и продолжить.
Асинхронный
Действие или событие — это то, что на самом деле происходит в течение неопределенного времени, о чем JS не знает, поэтому он запускает остальную часть кода после, а затем, когда асинхронное событие завершается, и затем запускает это завершенное событие.
То же самое и с функцией setState, так как это асинхронная функция, но REACT предлагает альтернативное решение, передавая функцию во втором параметре, например:
this.setState({searchField: event.target.value}, () => console.log(this.state)}
2-й аргумент - это обратный вызов, который запускается после завершения setState, и поэтому мы получаем немедленные результаты.
АСИНХРОННЫЕ ФУНКЦИИ — setState, useState
Альтернатива — функция обратного вызова, использующая useEffect