我有一个路由router.get('/generateDoc', handleRequest);
,我想两次运行这个handleRequest。有人可以建议我如何解决这种情况。
以下是我的代码示例。
function handleRequest(req, res, next) {
for (var i = 0; i < 2; i++) {
cacheService.clean();
PdfController.generatePDfs(req, res, next);
}
}
答案 0 :(得分:2)
要求很奇怪,但你可以这样做:
function handleRequestInnards(req, res, next) {
cacheService.clean();
PdfController.generatePDfs(req, res, next);
}
function handleRequest(req, res, next) {
handleRequestInnards(req, res, function() {
handleRequestInnards(req, res, next);
});
}
你可以在像Bluebird这样的库中获得更多的运气,你可以将它作为一个承诺并执行以下操作:
function handleRequest(req, res, next) {
Promise.all([
handleRequest(req, res),
handleRequest(req, res)
]).asCallback(next);
}
答案 1 :(得分:1)
我认为您也可以只添加两次中间件:
router.get('/generateDoc', handleRequest, handleRequest);