Nixon's Pants Missing

    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.

    Install

    npm i chrome-promise-temp

    DownloadsWeekly Downloads

    0

    Version

    1.0.10

    License

    MIT

    Last publish

    Collaborators

    • milklee