Fala ai Renatão, tudo bem? Vamos lá:
Qual a diferença entre eles?
Tecnicamente falando é que os Observables
podem emitir mais de uma valor enquanto as Promises
podem emitir apenas um valor, ou seja, um Observable
pode realizar varias emissões e vários valores, a Promise
uma vez emitida e resolvida ela esta feita.
Observables
também possuem bem mais funcionalidades e recursos do que Promises
.
Posso usar as promisses com async/await, com os observables também?
Não, você não consegue fazer await
de Observables
, nesse caso teria que usar o .subscribe
ou .toPromise
para convertê-lo em Promise
e ai sim realizar o await
.
Em exemplo real, qual seria o mais indicado para cruds?
Isso vai depender muito de cada arquitetura, no caso do Angular eu recomendaria usar os Observables
e aproveitar o que a RxJS tem à lhe oferecer.
Com a RxJS você consegue garantir uma reatividade na aplicação bem maior e usar mais o conceito e abordagens reativas.
Espero ter ajudado.