如何在承诺中设置身体?

在代码中,我想以某种方式改变注释部分应该能够设置文档的身体,而不是“this.body ='test';” (它仍然应该是Promise解决scheme)。

'use strict' var app = require('koa')(), router = require('koa-router')(); router.get('/', function *(next) { this.body = 'test'; // var promise = new Promise(function(resolve, reject) { // resolve("test"); // }); // promise.then(function(res){ // this.body = res; // }) }); app .use(router.routes()) app.listen(8000); 

问题在于Promise中的“this”并不是“正确的”。

这听起来很像一个重复的如何访问callback中正确的`this`上下文? (解决scheme是使用箭头函数进行callback),但实际上,您根本不需要使用koa(和co)的callback函数。 你可以放弃承诺!

 router.get('/', function*(next) { this.body = 'test'; var promise = Promise.resolve("test"); var res = yield promise; this.body = res; });