Как я могу "ждать" на Rx Observable?

Я хотел бы иметь возможность ждать на наблюдаемой, например,

const source = Rx.Observable.create(/* ... */)
//...
await source;

Наивная попытка приводит к тому, что ожидание разрешается немедленно и не блокирует выполнение

Изменить: псевдокод для моего полного предполагаемого использования:

if (condition) {
  await observable;
}
// a bunch of other code

Я понимаю, что могу переместить другой код в другую отдельную функцию и передать его в обратный вызов подписки, но я надеюсь, что смогу избежать этого.