Синхронно

Действие — это то, что мы можем ожидать почти немедленно, это то, что JS знает, сколько времени это займет, поэтому он может подождать до этого момента и продолжить.

Асинхронный

Действие или событие — это то, что на самом деле происходит в течение неопределенного времени, о чем JS не знает, поэтому он запускает остальную часть кода после, а затем, когда асинхронное событие завершается, и затем запускает это завершенное событие.

То же самое и с функцией setState, так как это асинхронная функция, но REACT предлагает альтернативное решение, передавая функцию во втором параметре, например:

this.setState({searchField: event.target.value}, () => console.log(this.state)}

2-й аргумент - это обратный вызов, который запускается после завершения setState, и поэтому мы получаем немедленные результаты.

АСИНХРОННЫЕ ФУНКЦИИ — setState, useState

Альтернатива — функция обратного вызова, использующая useEffect