Use Option::or_else in eventdispatcher::dispatch_event.

fix #1841