~/questoes/programacao
No padrão Repository, os métodos CRUD retornam Promises, que são objetos especiais do JavaScript que representam operações assíncronas. Isso permite que o Controller trabalhe com async/await ou callbacks, abstraindo a complexidade das operações de banco de dados.
As Promises permitem trabalhar com código assíncrono de forma clara e legível. Quando um método do Repository é chamado, ele retorna uma Promise que resolve com os dados quando a operação termina, sem bloquear a execução do programa.
O Repository não retorna strings XML ou JSON formatadas. Ele retorna Promises que, quando resolvidas, podem conter dados que o desenvolvedor converte para JSON na resposta HTTP.
Objetos JSON diretos sem encapsulação não funcionam com operações assíncronas de banco de dados. O Repository precisa retornar algo que represente uma operação em andamento, que é exatamente o que a Promise faz.
Arrays desorganizados não são o padrão do Repository Pattern. O método retorna uma Promise, não um array diretamente, pois a operação de banco de dados é assíncrona e não imediata.
Promises são o tipo correto de retorno. Elas encapsulam operações assíncronas e permitem que o Controller use async/await ou .then() para trabalhar com o resultado quando estiver pronto.