Чиста та зручна версія
Розширення на дивовижну відповідь M Fuat NUROĞLU щодо перетворення спостережуваного в обіцянку, ось дуже зручна версія цього.
const value = await observable.toPromise();
console.log(value)
Краса цього полягає в тому, що ми можемо використовувати це значення як звичайну змінну без введення іншого вкладеного блоку!
Це особливо зручно, коли вам потрібно отримати кілька значень із кількох спостережуваних. Охайний і чистий.
const content = await contentObservable.toPromise();
const isAuthenticated = await isAuthenticatedObservable.toPromise();
if(isAuthenticated){
service.foo(content)
}
Звичайно, вам доведеться зробити свою функцію, що міститься, async
якщо ви хочете пройти цим маршрутом. Ви також можете просто .then
обіцяти, якщо ви не хочете, щоб функція, що містить, була асинхронізованою
Я не впевнений, чи є компроміси з таким підходом, сміливо повідомте мене в коментарях, щоб ми знали.
PS Якщо вам сподобалась ця відповідь, не забудьте також відповісти на відповідь M Fuat NUROĞLU :)