Что означает star ( * ) в определении функции JavaScript в Koa framework? [дубликат]
этот вопрос уже есть ответ здесь:
- Что такое "функция*" в JavaScript? 3 ответы
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