Versión limpia y conveniente
Ampliando la asombrosa respuesta de M Fuat NUROĞLU para convertir lo observable en una promesa, aquí está la versión muy conveniente.
const value = await observable.toPromise();
console.log(value)
¡Lo bueno de esto es que podemos usar ese valor como una variable normal sin introducir otro bloque anidado!
Esto es especialmente útil cuando necesita obtener múltiples valores de múltiples observables. Limpio y ordenado.
const content = await contentObservable.toPromise();
const isAuthenticated = await isAuthenticatedObservable.toPromise();
if(isAuthenticated){
service.foo(content)
}
Por supuesto, tendrá que hacer que su función de contención async
vaya a esta ruta. También puede hacer .then
la promesa si no desea que la función que contiene sea asíncrona
No estoy seguro de si hay compensaciones con este enfoque, no dude en hacérmelo saber en los comentarios para que estemos al tanto.
PD: si te gustó esta respuesta, no olvides votar la respuesta de M Fuat NUROĞLU también :)