1

次のコードでは、何らかの方法で変更されたコメント部分が、「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);

問題は、Promise 内の「これ」が「正しいもの」と呼ばれていないことです。

4

1 に答える 1

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;
});
于 2016-03-31T16:30:56.477 に答える