code: func (d *dispatcher) dispatch(e Event) {
  	// needed so dispatches of events triggered in the listeners can be received without blocking
  	go func() {
  		for id, l := range d.listeners(e.TargetID, e.Name) {
  			if l(e) {
  				d.delListener(e.TargetID, e.Name, id)
  			}
  		}
  	}()
  }
docs: // Dispatch dispatches an event