ensure events are emitted on all thenables