Convert a signal into a promise for the first emitted value.
The signal we are listening to.
Optional
Timeout to wait for signal in ms (not timeout if not defined or 0)
a Promise that resolves with a (sender, args) pair.
(sender, args)
Convert a signal into a promise for the first emitted value.