Express server res.json(“”)需要花费很多时间

时间:2017-01-09 18:56:30

标签: node.js express express-session

我有nodejs应用程序,我使用的是typescript和Express服务器以及快速会话。

我还有路由功能,可以从客户端获取请求和响应。

private async changeVis(req: express.Request, res: express.Response) {
   Let mySession=._deepClone(req.session['blah']);
   MyModule.changeViz(mySession).then(function(myRes){
    req.session["blah"] = myRes;

    console.log('before res.json');        
    res.json("");
    console.log('after res.json');
}); 

我的问题是,该行

 res.json("");

取5秒的时间,出现'res.json'之前的时间和出现'res.json之后'之间的差值为加减-5秒。

现在,当我不使用session时,函数就像:

private async changeVis(req: express.Request, res: express.Response) {
   MyModule.changeViz().then(function(){;
    console.log('before res.json');        
    res.json("");
    console.log('after res.json');
}); 

没有delta,'res.json'后面'res.json'之前出现。

我尝试添加res.end(),但这没有帮助。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

因为您声明函数是异步的。 res对象将等待,直到函数中的所有进程结束。 您可以在res.end()之后创建所有其他函数; 或者从函数中删除异步