Socket
Socket
Sign inDemoInstall

q

Package Overview
Dependencies
Maintainers
2
Versions
76
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

q - npm Package Versions

1
8

0.9.3

Diff

Changelog

Source

0.9.3

  • Add the ability to give Q.timeout's errors a custom error message. #270 @jgrenon
  • Fix Q's call-stack busting behavior in Node.js 0.10, by switching from process.nextTick to setImmediate. #254 #259
  • Fix Q's behavior when used with the Mocha test runner in the browser, since Mocha introduces a fake process global without a nextTick property. #267
  • Fix some, but not all, cases wherein Q would give false positives in its unhandled rejection detection (#252). A fix for other cases (#238) is hopefully coming soon.
  • Made Q.promise throw early if given a non-function.
domenic
published 0.9.2 •

Changelog

Source

0.9.2

  • Pass through progress notifications when using timeout. #229 @omares
  • Pass through progress notifications when using delay.
  • Fix nbind to actually bind the thisArg. #232 @davidpadbury
domenic
published 0.9.1 •

Changelog

Source

0.9.1

  • Made the AMD detection compatible with the RequireJS optimizer's namespace option. #225 @terinjokes
  • Fix side effects from valueOf, and thus from isFulfilled, isRejected, and isPending. #226 @benjamn
kriskowal
published 0.9.0 •

Changelog

Source

0.9.0

This release removes many layers of deprecated methods and brings Q closer to alignment with Mark Miller’s TC39 [strawman][] for concurrency. At the same time, it fixes many bugs and adds a few features around error handling. Finally, it comes with an updated and comprehensive [API Reference][].

API Cleanup

The following deprecated or undocumented methods have been removed. Their replacements are listed here:

<table> <thead> <tr> <th>0.8.x method</th> <th>0.9 replacement</th> </tr> </thead> <tbody> <tr> <td><code>Q.ref</code></td> <td><code>Q</code></td> </tr> <tr> <td><code>call</code>, <code>apply</code>, <code>bind</code> (*)</td> <td><code>fcall</code>/<code>invoke</code>, <code>fapply</code>/<code>post</code>, <code>fbind</code></td> </tr> <tr> <td><code>ncall</code>, <code>napply</code> (*)</td> <td><code>nfcall</code>/<code>ninvoke</code>, <code>nfapply</code>/<code>npost</code></td> </tr> <tr> <td><code>end</code></td> <td><code>done</code></td> </tr> <tr> <td><code>put</code></td> <td><code>set</code></td> </tr> <tr> <td><code>node</code></td> <td><code>nbind</code></td> </tr> <tr> <td><code>nend</code></td> <td><code>nodeify</code></td> </tr> <tr> <td><code>isResolved</code></td> <td><code>isPending</code></td> </tr> <tr> <td><code>deferred.node</code></td> <td><code>deferred.makeNodeResolver</code></td> </tr> <tr> <td><code>Method</code>, <code>sender</code></td> <td><code>dispatcher</code></td> </tr> <tr> <td><code>send</code></td> <td><code>dispatch</code></td> </tr> <tr> <td><code>view</code>, <code>viewInfo</code></td> <td>(none)</td> </tr> </tbody> </table>

(*) Use of thisp is discouraged. For calling methods, use post or invoke.

Alignment with the Concurrency Strawman

  • Q now exports a Q(value) function, an alias for resolve. Q.call, Q.apply, and Q.bind were removed to make room for the same methods on the function prototype.
  • invoke has been aliased to send in all its forms.
  • post with no method name acts like fapply.

Error Handling

  • Long stack traces can be turned off by setting Q.stackJumpLimit to zero. In the future, this property will be used to fine tune how many stack jumps are retained in long stack traces; for now, anything nonzero is treated as one (since Q only tracks one stack jump at the moment, see #144). #168
  • In Node.js, if there are unhandled rejections when the process exits, they are output to the console. #115

Other

  • delete and set (née put) no longer have a fulfillment value.
  • Q promises are no longer frozen, which helps with performance.
  • thenReject is now included, as a counterpart to thenResolve.
  • The included browser nextTick shim is now faster. #195 @rkatic.

Bug Fixes

  • Q now works in Internet Explorer 10. #186 @ForbesLindesay
  • fbind no longer hard-binds the returned function's this to undefined. #202
  • Q.reject no longer leaks memory. #148
  • npost with no arguments now works. #207
  • allResolved now works with non-Q promises ("thenables"). #179
  • keys behavior is now correct even in browsers without native Object.keys. #192 @rkatic
  • isRejected and the exception property now work correctly if the rejection reason is falsy. #198

Internals and Advanced

  • The internal interface for a promise now uses dispatchPromise(resolve, op, operands) instead of sendPromise(op, resolve, ...operands), which reduces the cases where Q needs to do argument slicing.
  • The internal protocol uses different operands. "put" is now "set". "del" is now "delete". "view" and "viewInfo" have been removed.
  • Q.fulfill has been added. It is distinct from Q.resolve in that it does not pass promises through, nor coerces promises from other systems. The promise becomes the fulfillment value. This is only recommended for use when trying to fulfill a promise with an object that has a then function that is at the same time not a promise.
domenic
published 0.8.12 •

Changelog

Source

0.8.12

  • Treat foreign promises as unresolved in Q.isFulfilled; this lets Q.all work on arrays containing foreign promises. #154
  • Fix minor incompliances with the [Promises/A+ spec][] and [test suite][]. #157 #158
kriskowal
published 0.8.11 •

Changelog

Source

0.8.11

  • Added nfcall, nfapply, and nfbind as thisp-less versions of ncall, napply, and nbind. The latter are now deprecated. #142
  • Long stack traces no longer cause linearly-growing memory usage when chaining promises together. #111
  • Inspecting error.stack in a rejection handler will now give a long stack trace. #103
  • Fixed Q.timeout to clear its timeout handle when the promise is rejected; previously, it kept the event loop alive until the timeout period expired. #145 @dfilatov
  • Added q/queue module, which exports an infinite promise queue constructor.
kriskowal
published 0.8.10 •

Changelog

Source

0.8.10

  • Added done as a replacement for end, taking the usual fulfillment, rejection, and progress handlers. It's essentially equivalent to then(f, r, p).end().
  • Added Q.onerror, a settable error trap that you can use to get full stack traces for uncaught errors. #94
  • Added thenResolve as a shortcut for returning a constant value once a promise is fulfilled. #108 @ForbesLindesay
  • Various tweaks to progress notification, including propagation and transformation of progress values and only forwarding a single progress object.
  • Renamed nend to nodeify. It no longer returns an always-fulfilled promise when a Node callback is passed.
  • deferred.resolve and deferred.reject no longer (sometimes) return deferred.promise.
  • Fixed stack traces getting mangled if they hit end twice. #116 #121 @ef4
  • Fixed ninvoke and npost to work on promises for objects with Node methods. #134
  • Fixed accidental coercion of objects with nontrivial valueOf methods, like Dates, by the promise's valueOf method. #135
  • Fixed spread not calling the passed rejection handler if given a rejected promise.
kriskowal
published 0.8.9 •

Changelog

Source

0.8.9

  • Added nend
  • Added preliminary progress notification support, via promise.then(onFulfilled, onRejected, onProgress), promise.progress(onProgress), and deferred.notify(...progressData).
  • Made put and del return the object acted upon for easier chaining. #84
  • Fixed coercion cycles with cooperating promises. #106
kriskowal
published 0.8.8 •

kriskowal
published 0.8.7 •

Changelog

Source

0.8.7

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc