NodeJS es compatible con async/await de fábrica desde la versión 7.6. Creo que ha sido la mayor adición individual a JS desde 2017. Si aún no lo ha probado, aquí hay un montón de razones con ejemplos por los que debería adoptarlo de inmediato y nunca mirar hacia atrás.
[ACTUALIZAR]: Este artículo ha sido editado para ser más relevante en 2019
Para aquellos que nunca han oído hablar de este tema antes, aquí hay una introducción rápida
Asumiendo una función getJSON
que devuelve una promesa, y esa promesa se resuelve con algún objeto JSON. Solo queremos llamarlo y registrar ese JSON, luego devolver "done"
.
Así es como lo implementarías usando promesas
2. Si establece un punto de interrupción dentro de un bloque .then
y usa accesos directos de depuración como step-over, el depurador no se moverá al siguiente .then
porque solo "pasos" a través del código síncrono.
Con async/await no necesita tanto las funciones de flecha, y puede recorrer las llamadas en espera exactamente como si fueran llamadas sincrónicas normales.
Async/await es una de las características más revolucionarias que se han agregado a JavaScript en los últimos años. Te hace darte cuenta de lo que promete un lío sintáctico y proporciona un reemplazo intuitivo.
Un cierto escepticismo válido que podría tener sobre el uso de esta función es que hace que el código asíncrono sea menos obvio: nuestros ojos aprendieron a detectar el código asíncrono cada vez que vemos una devolución de llamada o un .then
, sus ojos tardarán algunas semanas en adaptarse al nuevo signos, pero C# tuvo esta característica durante años y las personas que están familiarizadas con ella saben que vale la pena este pequeño inconveniente temporal.
Sígueme en twitter @imgaafar