Node.js 膝关节炎性疾病路由的收益率 我试图找出膝关节炎性疾病的路由选择。

Node.js 膝关节炎性疾病路由的收益率 我试图找出膝关节炎性疾病的路由选择。,node.js,koa,Node.js,Koa,例如, router.get('/data', function *(next) { this.body = yield someData; }); 如果我想发送静态文件,我可以使用koa发送,如下所示:- router.get('/data', function *(next) { yield send(this, 'file.html'); }); 然而,如果我把第二个屈服点分配给这个物体,它就不起作用了 那又是什么呢 this.body = yield ... 实际上

例如,

router.get('/data', function *(next) {
    this.body = yield someData;
});
如果我想发送静态文件,我可以使用koa发送,如下所示:-

router.get('/data', function *(next) {
    yield send(this, 'file.html');
});
然而,如果我把第二个屈服点分配给这个物体,它就不起作用了

那又是什么呢

this.body = yield ...

实际上,我的意思是,为什么我不需要将第二个屈服点分配给身体?

如果你窥视koa发送库,你会注意到:

基本上,库正在将流分配给
this.body
,然后当您试图分配通过调用
yield send(this,'file.html')
返回的内容时,您正在破坏/覆盖库试图执行的操作

现在,如果您愿意,您可以选择不使用
koa send
,而只需执行以下操作:

this.body = fs.createReadStream('file.html');
进入你的具体问题

this.body = yield ...
对Promise/thunk/generator返回函数调用yield(在生成器内部),该函数执行异步操作,暂停函数中的执行,直到异步任务完成,然后在结果可用时重新启动函数

不久前,我在了解JavaScript生成器时做了一个屏幕广播,您可能会发现这很有帮助:

this.body = yield ...