Асинхронный / ожидаемый или наблюдаемый в угловом - PullRequest
0 голосов
/ 06 декабря 2018

Какой из async / await или Observable следует использовать для вызова внутренних служб в Angular?

Использование async / await облегчает просмотр исходного кода, поэтому я хотел бы использовать async / await.В этом случае я думаю, что его можно использовать с Observable # toPromise.

Однако руководство Angular показывает только примеры использования Obseravable, так что я должен использовать Observable?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Наблюдаемые IMO труднее обрабатывать, чем обещания javascript, во-первых, потому что они не имеют поддержки первого уровня в синтаксисе javascript (для них нет async / await и try / catch для них), а во-вторых, вам нужно запомнитьотписаться.

Я согласен с улучшенной читабельностью кода с обещаниями.

Для случаев, когда вы ожидаете ровно одно событие или один сбой вместо многих, обещание также имеет больше смысла концептуально, чемНаблюдаемый поток событий с .

0 голосов
/ 07 декабря 2018

Согласно документации Angular, вы должны использовать Observable.

Observable обеспечивают поддержку передачи сообщений между издателями и подписчиками в вашем приложении.Observables предлагают значительные преимущества по сравнению с другими методами обработки событий, асинхронного программирования и обработки нескольких значений.

Источник: https://angular.io/guide/observables

Второе предложение из приведенной выше цитаты является ключевым, в частности, упоминание «других методов», то есть обещаний.

Кроме того, не намного сложнее увидеть значение (исходный код) ваших ответов http.Фактически, значения становятся доступными после подписки на Observable.

Some.Service.ts

...
public getSomething(): Observable<HttpResponse> {
    return this._http.get<HttpResponse>('/api/something');
}
...  

что-то

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...