¿Cuál es la diferencia entre Promesas y Observables?

¿Cuál es la diferencia entre Promisey Observableen Angular? Un ejemplo de cada uno sería útil para comprender ambos casos. ¿En qué escenario podemos usar cada