¿Cómo puedo 'esperar' en un Rx Observable?

Me gustaría poder esperar en un observable, p.

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

Un intento ingenuo hace que la espera se resuelva de inmediato y no bloquee la ejecución

Editar: El pseudocódigo para mi caso de uso completo es:

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

Entiendo que puedo mover el otro código a otra función separada y pasarlo a la devolución de llamada de suscripción, pero espero poder evitarlo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta