Когда нужно использовать асинхронные запросы а когда синхронные?
Очень просто.
Асинхронные всегда.
Синхронные никогда.
https://developer.mozilla.org/ru/docs/Web/API/XMLH...[...] В основном предпочтительно использовать асинхронные запросы вместо синхронных из-за соображений производительности.
Синхронный запрос приводит к выполнению кода, который "блокирует" взаимодействие с вкладкой браузера до тех пор, пока запрос не будет полностью выполнен, что существенно ухудшает отклик страницы.
Новомодный fetch вообще не имеет синхронной версии и даже старый добрый XHR сильно ограничен.
Все просто -
Асинхронные - когда дальнейшая работа программы не зависит от выполнения запроса.
Синхронные - когда зависит.