Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback
interface MessagePort
implements EventTarget

The MessagePort interface of the Channel Messaging API represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other.

Properties

onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null
onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null

Methods

close(): void

Disconnects the port, so that it is no longer active.

postMessage(message: any, transfer: Transferable[]): void

Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.

Throws a "DataCloneError" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.

postMessage(message: any, options?: StructuredSerializeOptions): void
start(): void

Begins dispatching messages received on the port. This is implicitly called when assigning a value to this.onmessage.

addEventListener<K extends keyof MessagePortEventMap>(
type: K,
listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any,
options?: boolean | AddEventListenerOptions,
): void
addEventListener(
type: string,
options?: boolean | AddEventListenerOptions,
): void
removeEventListener<K extends keyof MessagePortEventMap>(
type: K,
listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any,
options?: boolean | EventListenerOptions,
): void
removeEventListener(
type: string,
options?: boolean | EventListenerOptions,
): void
variable MessagePort

The MessagePort interface of the Channel Messaging API represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other.

type

{ readonly prototype: MessagePort; new (): never; }