Pregunta

Vi algo extraño en Koa. Tiene algunos nombres de funciones nuevos (de https://github.com/koajs/koa/blob/master/examples/co.js#10):

app.use(function(){
  return function *(){
    var paths = yield fs.readdir('docs');

    var files = yield paths.map(function(path){
      return fs.readFile('docs/' + path, 'utf8');
    });

    this.type = 'markdown';
    this.body = files.join('');
  }
});

Que hace return function *() ¿significar? ¿Podemos declarar una función con el nombre de * en JavaScript?

¿Fue útil?

Solución

Significa que la función devuelve un iterador (por lo que se puede llamar repetidamente con .next () para producir más valores.

verificar http://wingolog.org/archives/2013/05/08/generators-in-v8 para más información

Es una construcción ES6, así que en este momento lo ves más en el nodo que en el lado del cliente JS

Otros consejos

KOA utiliza una nueva función JavaScript llamada generadores, y el * es la forma de identificar un generador en V8.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top