显然,这里的原因是因为 的异步性质on('data')
,以及使用 yield 的组合,但是我怎样才能使它工作呢?我试过“thunkifying” _this.req.on
,但无济于事。我仍然掌握了生成器、yield 和 thunk 的窍门,但我在这里有点难过。
有没有其他聪明的解决方案而不需要另一个模块依赖?
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;