【发布时间】:2017-09-20 19:39:42
【问题描述】:
目前我有一个仪表板,其中列出了表中的一堆记录。用户可以选择 1 条记录并点击执行,然后我向我的路由中间件发送 AJAX POST 请求,该中间件在 async.waterfall 中执行 3 个函数,如果一切正常,则向我的客户端返回 200 响应。这个异步瀑布通常需要大约 40-55 秒才能完成执行(fn_1、fn_2 和 fn_3)并且运行良好。
router.post('/url', function(req, res, next) {
try {
async.waterfall([
fn_1,
fn_2,
fn_3
], function (err, body) {
res.writeHead(200, {'Content-Type': 'application/json'});
res.end(JSON.stringify({"error":err, "result":body}));
});
function fn_1(callback) {
callback(null, response);
}
function fn_1(result, callback) {
callback(err, result);
}
function fn_2(result, callback) {
callback(null, result);
}
}
catch (err){
console.log(err)
}
});
但是,如果我要让用户选择 MULTIPLE 记录并将其作为数组发送回我的路由中间件。我如何为数组中的每个项目执行多个 async.waterfall 方法并行
我可以运行一个循环并在循环内执行瀑布,但它会再次等待每个项目完成,然后才开始下一次迭代。这不是我想要的。
这在 node / express 中可行吗?实现这一目标的最简单方法是什么?还是有可以帮助解决这种情况的模块/插件?
【问题讨论】:
-
看看 npm package 'cluster'
标签: node.js ajax multithreading express asynchronous