This package has been deprecated

Author message:

Deprecated, please instead of 'chrome-call'

chrome-promise-temp

1.0.10 • Public • Published

chrome-promise

DEPRECATED

I'll no longer to maintain this project, please have a look to chrome-call.

npm version build status

Chrome API using promises.

Installation

Use npm

npm install chrome-promise

Or bower

bower install chrome-promise

Or download chrome-promise.js file.

You can include it in your HTML like this:

<script type="text/javascript" src="chrome-promise.js"></script>

Examples

Detect languages of all tabs.

chrome.promise = new ChromePromise();

chrome.promise.tabs.query({}).then(function(tabs) {
  var promises = tabs.map(function(tab) {
    return chrome.promise.tabs.detectLanguage(tab.id);
  });

  return Promise.all(promises);
}).then(function(languages) {
  alert('Languages: ' + languages.join(', '));
}).catch(function(err) {
  alert(err.message);
});

Use local storage.

chrome.promise = new ChromePromise();

chrome.promise.storage.local.set({foo: 'bar'}).then(function() {
  alert('foo set');
  return chrome.promise.storage.local.get('foo');
}).then(function(items) {
  alert(JSON.stringify(items)); // => {"foo":"bar"}
});

Options

The constructor accepts two parameters: chrome and Promise.

  • chrome is the chrome API object. By default (or when null or undefined are used), it is the 'chrome' global property.

  • Promise is the object used to create promises. By default, it is the 'Promise' global property.

Synchronous-looking code

Starting from Chrome 39, you can use generator functions. Using the methods Q.async and Q.spawn from the Q library, the previous examples can be rewritten as:

chrome.promise = new ChromePromise();

// try...catch
Q.spawn(function* () {
  try {
    var tabs = yield chrome.promise.tabs.query({});
    var languages = yield Promise.all(tabs.map(function(tab) {
      return chrome.promise.tabs.detectLanguage(tab.id);
    }));
    alert('Languages: ' + languages.join(', '));
  } catch(err) {
    alert(err);
  }
});

// promise.catch
Q.async(function* () {
  var tabs = yield chrome.promise.tabs.query({});
  var languages = yield Promise.all(tabs.map(function(tab) {
    return chrome.promise.tabs.detectLanguage(tab.id);
  }));
  alert('Languages: ' + languages.join(', '));
})().catch(function(err) {
  alert(err);
});

Q.spawn(function* () {
  yield chrome.promise.storage.local.set({foo: 'bar'});
  alert('foo set');
  var items = yield chrome.promise.storage.local.get('foo');
  alert(JSON.stringify(items));
});

You can also use the co library instead of Q.

Package Sidebar

Install

npm i chrome-promise-temp

Weekly Downloads

2

Version

1.0.10

License

MIT

Last publish

Collaborators

  • milklee