-
Notifications
You must be signed in to change notification settings - Fork 389
Changelog
Brian Cavalier edited this page May 17, 2012
·
24 revisions
-
promise.otherwise(errback)as a shortcut forpromise.then(null, errback). See discussion here and here. Thanks to @jonnyreeves for suggesting the name "otherwise". - when/debug now detects exceptions that typically represent coding errors, such as SyntaxError, ReferenceError, etc. and propagates them to the host environment. In other words, you'll get a very loud stack trace.
- Updated wiki map/reduce examples, and added simple promise forwarding example
- Fix for calling
when.any()without a callback (#33) - Fix version number in
when.jssource (#36)
-
when.all/any/some/map/reducecan all now accept a promise for an array in addition to an actual array as input. This allows composing functions to do interesting things likewhen.reduce(when.map(...)) -
when.reject(promiseOrValue)that returns a new, rejected promise. -
promise.always(callback)as a shortcut forpromise.then(callback, callback) -
Highly experimental when/debug module: a drop-in replacement for the main
whenmodule that enables debug logging for promises created or consumed by when.js
- Travis CI integration
- Fix for cancelable deferred not invoking progress callbacks. (#24 Thanks @scothis)
- The promise returned by
when.chainnow rejects when the input promise rejects.
- Fix for specific situation where
nullcould incorrectly be used as a promise resolution value (#23)
- Updated README for running unit tests in both Node and Browsers. See Running the Unit Tests below.
- Set package name to 'when' in package.json
- Fix for rejections propagating in some cases when they shouldn't have been (#19)
- Using buster.js for unit tests now.
- First official when.js release as a part of cujojs.
- Added when/cancelable decorator for creating cancelable deferreds
- Added when/delay and when/timeout helpers for creating delayed promises and promises that timeout and reject if not resolved first.
- Added when/apply helper module for using arguments-based and variadic callbacks with
when.all,when.some,when.map, or any promise that resolves to an array. (#14) -
.then(),when(), and all other methods that accept callback/errback/progress handlers will throw if you pass something that's not a function. (#15)
-
when.jsnow assimilates thenables that pass the Promises/A duck-type test, but which may not be fully Promises/A compliant, such as jQuery's Deferred and curl's global API (See the API at a glance section)-
when(), andwhen.all/some/any/map/reduce/chain()are all now guaranteed to return a fully Promises/A compliant promise, even when their input is not compliant. - Any non-compliant thenable returned by a callback or errback will also be assimilated to protect subsequent promises and callbacks in a promise chain, and preserve Promises/A forwarding guarantees.
-
-
Important Fix for some AMD build/optimizer tools: Switching back to more verbose, builder-friendly boilerplate
- If you are using when.js 0.10.3 with the dojo or RequireJS build tools, you should update to v.10.4 as soon as possible.
Warning: This version will not work with most AMD build tools. You should update to 0.10.4 as soon as possible.
- Minor
package.jsonupdates - Slightly smaller module boilerplate
- Performance optimizations for
when.map()(thanks @smitranic), especially for large arrays where themapFuncis also async (i.e. returns a promise) -
when.all/some/any/map/reducehandle sparse arrays (thanks @rwaldrn) - Other minor performance optimizations
- Minor tweaks (thanks @johan)
- Add missing semis that WebStorm didn't catch
- Fix DOH submodule ref, and update README with info for running unit tests
-
when.mapandwhen.reduce- just like Array.map and Array.reduce, but they operate on promises and arrays of promises - Lots of internal size and performance optimizations
- Still only 1k!
- Important fix for break in promise chains