Чистая и удобная версия
В продолжение удивительного ответа 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 :)