我在Node.js中编写应用程序我需要一些建议。
我收到客户的POST请求。收到请求后,我调用了一些函数。在执行结束时,我需要回复使用HTTP响应发起请求的客户端。问题是:
我该如何解决?我能获得一些建筑建议吗?
答案 0 :(得分:0)
听起来您希望使用类似async库的内容来处理异步任务(async.series或async.parallel听起来合适)。
这样,您可以对所有异步任务进行“分组”,并在完成所有任务后调用一个回调。从该回调中,您可以处理您的回复:
app.post('/your/route', function(req, res) {
async.parallel([
// start your tasks (called 'task1', 'task2', and pass the 'async' callback
// to them; once a task is done, it needs to call the callback)
function(cb) { task1(cb); },
function(cb) { task2(cb); },
...
], function(err, results) {
if (err)
// handle error
else
res.send('tasks done'); // or whatever you want to send back
});
});
(取决于您的任务签名,您可以使用async.apply而不必为每项任务创建新功能)
传递响应对象并不是一个好主意,因为 - 如果我理解正确 - 您的任务本身不必生成响应。