gpt4 book ai didi

javascript - `return function *(){...}` 是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 21:51:40 25 4
gpt4 key购买 nike

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

返回函数*()是什么意思?我们可以在 JavaScript 中声明一个名为 * 的函数吗?

最佳答案

这意味着该函数返回一个迭代器(因此可以使用 .next() 重复调用它以产生更多值。

查看 http://wingolog.org/archives/2013/05/08/generators-in-v8了解更多信息

它是一个 ES6 构造,所以目前你在 Node 而不是客户端 js 中看到它更多

关于javascript - `return function *(){...}` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19833945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com