フロントエンド JavaScript には、クライアントが特定のメッセージを受信するとすぐにfuncA
通常実行される関数があります。A
B
を送信する前に、サーバーが別のメッセージを送信する可能性がありますA
。これが発生すると、クライアントは 2 つのメッセージを受け取ります。最初に 、B
次にA
別の関数funcB
( によってトリガーされるB
) が の前に実行されfuncA
ます。
さて、ifを最初に実行する場合、受信時にの実行を遅らせるエレガントな方法はありますか?funcA
A
funcB
アイデアを説明するための以下の疑似コード:
...
// called upon receiving msg `A`
// but need to delay its execution if receiving `B` and executing funcB first
function funcA(param) {
...
}
// called upon receiving msg `B`
function funcB(param) {
...
}
...
// receiving messages from server
var msg = JSON.parse(...);
if (msg.type === 'A') {
funcA(msg.data);
}
else if (msg.type === 'B') {
funcB(msg.data);
}
else if (msg.type === 'C') {
...
}
// deal with other types of message
...
を実行するたびに「フラグ」と条件付きチェックを組み合わせて使用することを考えることができますがfuncA
、これは私にはあまりエレガントに思えません。
注意: この質問は関数の実行を遅らせる方法に関するものではありません(通常は を使用して実現されますsetTimeout
)。代わりに、特定のコード ロジックが与えられた設計パターン/構造を尋ねます。