I ran into an issue where I want to trigger an event that I don't want my code to continue to execute before it is processed, but it's not a synchronous event.
I'm suggesting adding a new publishAwait method that makes the publish method use async/await and await the deliver function.