bluebird-q

Drop-in replacement for Q v1 that delegates to bluebird

Usage no npm install needed!

<script type="module">
  import bluebirdQ from 'https://cdn.skypack.dev/bluebird-q';
</script>

README

Build Status

Introduction

This is a drop-in replacement for Q version 1.x that delegates to bluebird 3.4.6. Enjoy better stack traces, performance and memory usage without changing your existing legacy code.

Installation:

npm install bluebird-q

Usage:

var Q = require("bluebird-q");

API

Additionaly to Q APIs following methods are availible on Q object:

  • Q.getBluebirdPromise(): Returns native bluebird Promise

Testing

Clone this repository and then run npm install && npm test in the cloned directory root.

Caveats

  • dispatch, progress and Q.makePromise are unimplemented
  • Currently relies on Object.defineProperty so cannot be used in browsers that don't support ES5
  • Performance of Q-specific methods is not yet optimized e.g.
    • nfapply
    • nfcall
    • nfbind
    • npost
    • nsend
    • ninvoke
    • nbind
    • nmcall
    • fapply
    • fcall
    • fbind
    • denodeify
    • nmapply
    • mapply
    • post
    • send
    • mcall
    • invoke
    • ....
  • However bluebird-specific methods that don't collide with Q names are still available e.g. Q.promisifyAll
  • A few original tests had to be modified in spec/q-spec.js, you can find these tests by searching for "Test modified"