fix(on): do not use promise for 'on'