3.0.2 • Published 7 years ago

message-channel-promise v3.0.2

Weekly downloads
5
License
MIT
Repository
github
Last release
7 years ago

message-channel-promise

Promise wrapper for communication via post message and MesssageChannel

Installation

npm i message-channel-promise

Usage

The module exposes a function which can be used to wrap communication via MessageChannel in a promise, resolved only when the recepient responds.

This works with IFrames and web workers, and message ports.

parameters

  • message: The message to send. Must be a serializable JSON object.
  • target: The contentWindow or worker. can be omitted if sending from worker, since it sends messages to itself.
  • options: contains optional parameters (optional):
    • targetOrigin (optional): The origin to send the message to. Defaults to *, and not necessary for web workers or message ports.
    • transfer (optional): a list of other Transferrable objects to be passed.

You should always send a targetOrigin when working with iFrames.

Examples

Usage with IFrames:

const sendChannelMessage =  require('message-channel-promise');
const frame = document.querySelector('#iframe');
const message = {/* ... */};
sendChannelMessage(message, frame.contentWindow, {targetOrigin: '*'})
  .then(function(data) {
    // Do something with the response
  });

Usage with Web Workers:

const sendChannelMessage =  require('message-channel-promise');
const worker = new Worker(someScript);
sendChannelMessage(message, worker)
    .then(function (data) {
      // Do something with the response
    });

Usage with MessagePort objects:

const sendChannelMessage = require('message-channel-promise');
//get port from somewhere, can also be from other context
sendChannelMessage(message, port)
  .then(function (data) {
    // Do something with the response
  })
3.0.2

7 years ago

3.0.1

7 years ago

3.0.0

7 years ago

2.0.0

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago