使用Express(NodeJS),有没有办法保存请求的详细信息,以便以后完成响应? (基本上,请求挂起响应)。不使用setTimeout()或sleep或任何其他延迟。
例如,如果这是我的功能:
function(req, res) {
var data = req.body;
setTimeout(function() {
res.json(data);
}, 3000);
}
是否可以在该功能范围之外使用(req,res)对象,并在以后成功响应特定请求? (例如,之后30秒,或代码的不同部分)
答案 0 :(得分:0)
不,我不这么认为。请求/响应特定于处理程序调用。
答案 1 :(得分:0)
是的,这是可能的。您需要做的就是在调用res.json()
或发送响应的任何其他函数之前调用长时间运行的非异步(阻塞)函数,例如
function(req, res) {
var data = longRunningNonAsyncFsCall();
res.jsonp(data);
}
我不认为你需要setTimeout()
。