我有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(),但这没有帮助。
有人可以帮忙吗?
答案 0 :(得分:1)
因为您声明函数是异步的。 res对象将等待,直到函数中的所有进程结束。 您可以在res.end()之后创建所有其他函数; 或者从函数中删除异步