Once you have created a transaction, you broadcast it to the network and wait for a miner to include it in their block. Meanwhile, from the point of view of all external parties, the transaction hasn't yet happened.
Once a transaction is included in a block, the block is successfully mined and the block is broadcasted to the network, the transaction is considered as executed. Therefore also the transaction's event are only emitted at that point.
The moment you "hear" the emitted event also depends on the node you are connecting to. Some nodes get information about a block faster than others, due to network latency.