---
title: "dispatchEvent(type:canBubble:cancellable:extraInfo:completion:)"
framework: tvmlkit
role: symbol
role_heading: Instance Method
path: "tvmlkit/tvviewelement/dispatchevent(type:canbubble:cancellable:extrainfo:completion:)"
---

# dispatchEvent(type:canBubble:cancellable:extraInfo:completion:)

Dispatches an event of a specific type to the JavaScript file.

## Declaration

```swift
func dispatchEvent(type: TVElementEventType, canBubble: Bool, cancellable isCancellable: Bool, extraInfo: [String : Any]?, completion: (@Sendable (Bool, Bool) -> Void)? = nil)
```

```swift
func dispatchEvent(type: TVElementEventType, canBubble: Bool, cancellable isCancellable: Bool, extraInfo: [String : Any]?) async -> (Bool, Bool)
```

## Parameters

- `type`: The type of TV element to dispatch. For possible values see doc://com.apple.tvmlkit/documentation/TVMLKit/TVElementEventType.
- `canBubble`: A flag that indicates an event is dispatched on the target’s parent nodes after the event has been dispatched on the target.
- `isCancellable`: A flag to indicate whether the event can be cancelled.
- `extraInfo`: Extra properties that need to be exposed in the event object.
- `completion`: A block object to be executed when the dispatch call is complete. This block has no return value and takes two Boolean arguments that indicate whether or not the event has been dispatched and whether it was canceled. This parameter may be NULL.

## Discussion

Discussion important: You can call this method from synchronous code using a completion handler, as shown on this page, or you can call it as an asynchronous method that has the following declaration: func dispatchEvent(type: TVElementEventType, canBubble: Bool, cancellable isCancellable: Bool, extraInfo: [String : Any]?) async -> (Bool, Bool) For information about concurrency and asynchronous code in Swift, see Calling Objective-C APIs Asynchronously. Use this method to dispatch events from views and view controllers to JavaScript.

## See Also

### Dispatching Events

- [TVElementEventType](tvmlkit/tvelementeventtype.md)
- [dispatchEvent(name:canBubble:cancellable:extraInfo:completion:)](tvmlkit/tvviewelement/dispatchevent(name:canbubble:cancellable:extrainfo:completion:).md)
