Pesquisa de site

javascript - Observable versus Callback


Eu tenho trabalhado com JavaScript há algum tempo. No entanto, sou relativamente novo no Angular 2, então sei quase nada sobre Observables. Quando eu estava lendo as descrições de Observables, eles soaram muito semelhantes aos callbacks que eu já conhecia. Quando eu pesquisei no Google, havia comparações entre callbacks e promises, e havia comparações entre promises e observables. No entanto, não consegui encontrar nenhuma comparação entre callback e Observables.

Qual é a diferença entre callbacks e observáveis?

Resposta #1

Como discutido neste tópico, a principal diferença entre Observables e Promises é que Promises lidam com eventos assíncronos de uma única vez que podem ser resolvidos ou falhar, enquanto Observables permitem fluxos compostáveis por meio de várias operações anexadas a uma fonte de dados ou eventos assíncrona. No final, para passar os resultados de um Observable ou de uma Promise de volta para o código síncrono, você precisará de um callback para atuar como um sumidouro de dados, então os dois não são mutuamente exclusivos. Dito isso, Observables, assim como Promises, permitem o açúcar sintático de usar funções compostáveis para definir de forma declarativa operações em um fluxo de dados assíncrono. No caso dos Observables, você pode usar um único callback como sumidouro para passar os resultados de volta para o código síncrono, em vez de ter que aninhar chamadas de funções e/ou realizar chamadas recursivas de funções como seria o caso ao compor operações assíncronas usando apenas callbacks.