Managing the flow of asynchronous operations in NodeJS
Erick Wendel
Microsoft Student Partner
Sync x Async x Parallel
Operações Síncronas
Operações realizadas em série.
Operações Assíncronas
Operações são realizadas de acordo com a prioridade definida pelo sistema operacional.
Paralelismo
Processamentos independentes executados ao mesmo tempo.
Demonstration
Continuation-passing style
function myFunction(callback) {
return callback(null, 'hello from my function');
}
Funções que recebem funções como argumento.
Após a execução de uma determinada tarefa, retorna ao ponto em que foi chamado, devolvendo o resultado da chamada.
Demonstration
Best Practices
Funções
Funções nomeadas.
"return" para finalizar a chamada.
Argumentos
Primeiro argumento para erros.
Segundo argumento para resultados.
Callback Hell
Demonstration
Promises (ES6)
“… Uma Promise (promessa) é uma abstração para programação assíncrona, que recebe algum input (dados) e retorna uma promessa do output (resultado) final. “ - Sebastian Ferrari
Demonstration
BluebirdJS Module
Implementação para manipular Promises.
Transformar funções
Funções que possuam callbacks em promises.
casting de implementações existentes (modulos) em promises.
Demonstration
AsyncJS Module
Superset para controle de fluxo das operações.
Mais opções para manipular operações (async, series, parallel, map, waterfall, etc.)