一連のアクションを実行するミドルウェアを作成しています。シーケンスが完了したら、ミドルウェアで next() を呼び出します。この時点から、ミドルウェアは冗長です。私は次のコードを書きました: (ここでは一連のアクションは setTimeout の呼び出しによってモックされています):
function myMiddleware(req, res, next){
console.info("inside myMiddleware");
if (actionDone) {
console.info("middleware redundant. ActionDone, calling next");
next();
}
setTimeout(doneWaiting, 30000);
function doneWaiting(){
actionDone = true;
next();
}
}
アクションが完了する前に複数のリクエストが到着すると、setTimeout が何度も呼び出されるため、このコードは機能しません。setTimeout を 1 回だけ呼び出し、それが完了したときにのみ、これまでに到着したすべてのリクエストに対して next() を呼び出したいと考えています。
これを達成するための最良の方法は何ですか?
ありがとう、リー