Javascript 如何使yield在不需要更多模块的情况下使用此.req.on(';data';)工作?

Javascript 如何使yield在不需要更多模块的情况下使用此.req.on(';data';)工作?,javascript,node.js,generator,yield,co,Javascript,Node.js,Generator,Yield,Co,显然,这里的原因是因为('data')上的的异步性质,以及使用yield的组合,但是我如何才能做到这一点呢?我在上尝试了“thunkying”\u this.req.但没有用。我仍然掌握着发电机、产量和砰砰声的窍门,但我在这里有点不知所措 是否有其他聪明的解决方案,而不需要另一个模块依赖关系 var thunkify = require('thunkify'); var request = thunkify(require('request')); //... if (['GET', 'DE

显然,这里的原因是因为('data')上的
的异步性质,以及使用yield的组合,但是我如何才能做到这一点呢?我在
上尝试了“thunkying”
\u this.req.但没有用。我仍然掌握着发电机、产量和砰砰声的窍门,但我在这里有点不知所措

是否有其他聪明的解决方案,而不需要另一个模块依赖关系

var thunkify = require('thunkify');
var request = thunkify(require('request'));

//...

if (['GET', 'DELETE'].indexOf(_this.req.method) === -1) {
        _this.req.on('data', function(chunk) {
            options.json = chunk.toString();
        });
    }

//...

var resp = yield request(options);
_this.body = resp[0].body;

我能够通过使用
co-body
模块来完成这项工作。下面是一个例子:

var thunkify = require('thunkify');
var request = thunkify(require('request'));
var parse = require('co-body');

//...

if (['GET', 'DELETE'].indexOf(_this.req.method) === -1) {
        options.json = yield parse.json(_this.req);
    }

//...

var resp = yield request(options);
_this.body = resp[0].body;

但是,我不喜欢这样的事实,每次我必须做一些事情时,我都需要另一个模块。有谁有更好的答案吗?

这是另一个问题还是答案?我想我自己会做更多的挖掘,因为还没有人回答。。虽然我不喜欢我的答案,所以我在等待是否有人有更好的答案。这是你应该做的。你能展示一下你的全部代码吗?我想我可以回答你的问题,但我不确定你在那里做什么。