Причина, по которой Angular Http
извлекает выгоду из наблюдаемых, заключается в том, что некоторые части Angular используют наблюдаемые, поэтому они могут быть эффективно составлены, например, наблюдаемая реактивная форма может быть задушена и передана в Http
.Весьма распространено, что Http
наблюдаемое преобразуется toPromise()
, просто потому что оно полностью наблюдаемое с одним значением и может получить выгоду от async..await
, будучи обещанием.
Если в проекте React интенсивно не используются наблюдаемые (например,с redux-observable
) преимуществ будет намного меньше, чем в Angular.
Как уже упоминалось в другом ответе, в RxJS есть встроенный API HTTP-запросов, rxjs/ajax
.Это обертка вокруг XMLHttpRequest
, это означает, что она предоставляет отменяемые запросы, в отличие от некоторых основанных на обещаниях API, особенно Fetch.Он очень упрощен и не имеет функций, которые можно ожидать от Http
альтернативы - перехватчиков и т. Д.
Axios обычно можно рекомендовать как независимую от фреймворка, полнофункциональную альтернативу Angular Http
, основанную на обещаниях.Это было смоделировано после AngularJS $http
.Обещание из него может быть преобразовано в наблюдаемое, но необходимо принять дополнительные меры для отмены запроса.
TL; DR: самая большая продажа Http
состоит в том, что его наблюдаемые могут быть составлены с другими наблюдаемыми.Если их нет, преимущества гораздо менее очевидны.Обещания могут извлечь пользу из async..await
синтаксического сахара, в то время как наблюдаемые должны быть преобразованы в обещания любым способом извлечь выгоду из него.