Koa 2.如何在路由器中“从Promise”发送服务器响应?

时间:2016-09-16 22:46:00

标签: ajax asynchronous promise koa

这是作为AJAX请求的脚本执行的:

app.use(route.post('/ajax_request', function(ctx) {
    var p = new Promise(function(res){
        res('Some result to be received as AJAX resp');
    });
    p.then(function (val){
        ctx.body = val; //resolved after response is sent
    });
}))

那么如何将一些异步接收(在本例中包含在Promise中)数据发送回客户端(在这种情况下作为AJAX响应)?

1 个答案:

答案 0 :(得分:0)

如果您正在使用Koa 2,则应该使用async函数作为中间件。如果您不熟悉在Koa 2中使用async/await或任何其他ES6 +功能,我建议您学习如何使用Babel来转换代码以便使用它们。如果你不想要进行蒸腾步骤,你现在应该只使用Koa 1.X。

在Koa 2中,代码如下所示:

app.use(route.post('/ajax_request', async (ctx) => {
    let p = new Promise(function(res){
        res('Some result to be received as AJAX resp');
    });

    let val = await p;
    ctx.body = val;
}));