javascript - Koa框架中JavaScript函数定义中的星号(*)是什么意思?

标签 javascript ecmascript-harmony koa

<分区>

我一直在熟悉 Koa ( http://koajs.com/ )。许多例子都用星号代替了函数名。例如在 Hello World 的例子中有:

var koa = require('koa');
var app = koa();

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

app.listen(3000);

这颗星是什么意思?

最佳答案

它通常会创建一个“迭代器”,因此您可以一次产生一个结果。
类似于C#的yield重点工作。

Official Information

示例

斐波那契数列的“无限”序列(尽管在 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

关于javascript - Koa框架中JavaScript函数定义中的星号(*)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23423382/

相关文章:

javascript - 发电机发电值差异

javascript - 在 ES 6/Harmony 中拆分类定义

javascript - 单击后如何加载选择下拉菜单项

javascript - 在使用 json 进行 ajax 响应后将 addClass 添加到某个 id

javascript - 从 Bing Phonebook API 获取业务类型/行业

javascript - *something* if *expression* JavaScript 中的语法 (FF)

node.js - 从 Koa Controller 操作返回 promise 错误

javascript - 如何不编码unicode,javascript

javascript - Koa 的 `ctx.status` 没有发送给客户端

javascript - Google Analytics Embed API 图表未呈现