Что означает star ( * ) в определении функции JavaScript в Koa framework? [дубликат]

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

http://koajs.com/). Многие из примеров включают символ звезды вместо имени функции. Например, в Примере hello world есть есть:
var koa = require('koa');
var app = koa();

app.use(function *(){
  this.body = 'Hello World';
});

app.listen(3000);

что означает эта звезда?

1 ответов


он обычно создает "итератор", поэтому вы можете получить результат по одному за раз.
похоже на C# ' S доходность ключевые работы.

Официальная Информация

пример

"бесконечная" последовательность чисел Фибоначчи (несмотря на поведение вокруг 2^53):

function* fibonacci() {
    let [prev, curr] = [0, 1];
    for (;;) {
        [prev, curr] = [curr, prev + curr];
        yield curr;
    }
}

генераторы могут быть повторены в циклах:

for (n of fibonacci()) {
    // truncate the sequence at 1000
    if (n > 1000)
        break;


  print(n);
}

генераторы итераторы:

let seq = fibonacci();
print(seq.next()); // 1
print(seq.next()); // 2
print(seq.next()); // 3
print(seq.next()); // 5
print(seq.next()); // 8