### You want to: * [x] report a *bug* * [ ] request a *feature* ### Current behaviour Using `async/await` to construct payloads results in a race condition and messages potentially being broadcast to all connections. ### Steps to reproduce **Fiddle**: https://github.com/tommoor/socket.io-fiddle/tree/async-await-critical-issue **TLDR**: Using `await` within the payload construction for `emit` will cause the message to be sent to all connections instead of the specific room. eg: ``` io.to('my-private-room').emit('event', { data: await myDatabaseQuery() }); ``` ### Expected behaviour Data should be sent to the correct room and not leaked to all clients. ### Setup - OS: All - browser: All - socket.io version: 2.2.0