koa的简单问题
发布于 8 年前 作者 luyouxin84 3138 次浏览 来自 问答

function *(next) {…} 这里的generator使用的next只是一个参数名字,还是next()这个方法呢? 比如koa-route的路由设置里。 app.param(‘id’,function *(id,next){ this.id = Number(id); if ( typeof this.id != ‘number’) return this.status = 404; yield next; }).get(’/detail/:id’, function *(next) { //我是详情页面 var id = this.id; //123 this.body = id; });

我就不太明白

4 回复

next 是一个参数, 是由 koa 注入进来的, 只不过大家都约定了这种写法而已 你可以试试把 next 改成 foo 下面改成 yield foo ,效果是一样的

lz 可以看一下 markdown 的语法, cnode 是支持 md 语法的, 代码的排版可以更好

next只是一个形参名而已,就像很多回调,其实里面名字你是可以自己取

在参数中获取到的next 是一个Generator函数执行后得到的那个对象~

回到顶部