Estoy tratando de aprender koa.js. ¿Ignoro todo desde la versión 1 o siguen siendo útiles los generadores?

Desde NodeJS 7.6 las funciones asíncronas son compatibles sin un indicador. ¡Significa que puedes ejecutar código asíncrono por defecto! Eso también significa que Koa 2 es el predeterminado ahora!

Los generadores son útiles, pero ya no para middleware Koa.

  • Los generadores se pueden encontrar en Array looping con for..of [1].
  • Los generadores se pueden encontrar detrás de escena cuando se destruye [2] un iterable.
  • Los generadores son abstracciones útiles para el diseño algorítmico.

Pero los generadores no son lo que necesita ahora si quiere usar la nueva versión de Koa, así que vamos a refactorizar algunos códigos.

Código como este:

app.use (función * (siguiente) {
console.log (‘Primero’)
ceder al lado
console.log (‘Tercero’)
})

app.use (función * () {
console.log (‘Second’)
this.body = ‘Hola Mundo’
})

Se convierte en

app.use (async (ctx, siguiente) => {
console.log (‘Primero’)
esperar siguiente ()
console.log (‘Tercero’)
})

app.use (async (ctx, siguiente) => {
console.log (‘Second’)
this.body = ‘Hola Mundo’
})

No es tan difícil ¿verdad? Pero si tiene problemas para entender las funciones asíncronas, le recomiendo que lea sobre Promesas [3] y luego funciones asíncronas [4].

Notas al pie

[1] para … de

[2] Tarea de destrucción

[3] Promesas de JavaScript: una introducción | Web | Desarrolladores de Google

[4] Entendiendo async y espera en JavaScript