support emit with cb argument