Cómo iniciar el segundo observable * solo * después de que el primero se * complete * por completo en rxjs

Tenía la impresión de queObservable.[prototype.]concat se asegura de que la primera operación esté completamente terminada antes de que comience la segunda operación. Pero en el siguiente código:

Observable
    .concat(
        Observable.fromNodeCallback(rimraf)(path.resolve('./some_dir')),
        Observable.fromNodeCallback(mkdir)(path.resolve('./some_dir')),
        writeToSomeDir$
    )

mkdir intenta (y falla) crear./some_dir antes derimraf ha terminado de eliminar el directorio. Al final (de tirar) sin embargo,./some_dir termina siendo eliminado.

Por que esObservable.concat mostrando tal comportamiento? ¿Cómo puedo asegurarme de que el primer Observable esté completamente terminado antes de comenzar con el segundo Observable sin caer para sincronizar la versión de rimraf?

Respuestas a la pregunta(1)

Su respuesta a la pregunta