Почему в Angular нет синхронных вызовов> = 2 - PullRequest
0 голосов
/ 27 апреля 2018

Что, если я хочу убедиться, что HTTP-вызов является синхронным, потому что до тех пор, пока данные не будут получены, никакие другие операции не должны выполняться?

Почему нет возможности записи синхронного вызова в Angular 2 или более поздней версии?

1 Ответ

0 голосов
/ 27 апреля 2018

Потому что это анти-паттерн.

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

И даже если они не выходят из строя, им может потребоваться много времени, в течение которого ваше приложение не должно выглядеть замороженным, поэтому пользователь не закроет его или не бросит телефон к стене.

Если вы действительно хотите сделать вещи синхронными, вы можете использовать для этого несколько операторов RXJS; см:

Как я могу заставить одну наблюдаемую последовательность RxJS ждать, пока другая завершит свою работу, перед излучением?

...