如何在Promise中设置body?

时间:2016-03-31 15:42:26

标签: node.js promise koa document-body koa-router

在下面的代码中,我希望以某种方式更改评论部分应该能够设置文档的正文而不是" this.body =' test';" (它仍然应该是Promise解决方案)。

'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);

问题是"这个"在承诺内部没有被提及"正确的#34;。

1 个答案:

答案 0 :(得分:3)

这听起来很像How to access the correct `this` context inside a callback?的副本(解决方案是使用箭头函数进行回调),但实际上你根本不需要使用koa(和co)进行回调。你可以实现承诺!

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