Что означает` return function * () { ... }'? [дубликат]



этот вопрос уже есть ответ здесь:



я увидел что-то странное в Koa. Он имеет некоторые новые имена функций (от https://github.com/koajs/koa/blob/master/examples/co.js#L10):



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('');
}
});


что значит return function *() в смысле? Можем ли мы объявить функцию с именем * в JavaScript?

523   2  

2 ответов:

Это означает, что функция возвращает итератор (так что он может быть повторно вызван С.далее (), чтобы получить больше значений.

проверить http://wingolog.org/archives/2013/05/08/generators-in-v8 для получения дополнительной информации

Это конструкция ES6, поэтому на данный момент Вы видите ее больше в узле, а не на стороне клиента js

Koa использует новую функцию JavaScript под названием генераторы и * Это способ определить генератор в V8.

Comments

    Ничего не найдено.