EventDispatcher When Done Firing?

I have an EventDispatcher that passes the current game state (in this case an enum of possible states), and I need to know when a call to it is finished. The issue I’m having is events will need to set the next state, but i don’t want them to actually change the state until the current event is done firing.

Example: I fire my gameState event and a listener decides the turn is over and wants to call the gameState event to set the state to TurnEnd. That would be fine if it didn’t at that point kick off another event call before the rest of the listeners can respond to the first call.

Summary: Is there something akin to EventDispatcherDoneFiring?

If there isn’t a way to know when the dispatcher is finished firing, is there a way to specify a listener to be the last to be called?