Skip to content

Instantly share code, notes, and snippets.

@clarkf
Created January 26, 2012 06:25
Show Gist options
  • Save clarkf/1681368 to your computer and use it in GitHub Desktop.
Save clarkf/1681368 to your computer and use it in GitHub Desktop.
What did I do here?
var q = require('q'),
guid = 1;
function randomDefer() {
var defer = q.defer(), id = guid++;
console.log("sending %d", id);
setTimeout(function () {
console.log("resolving %d", id);
defer.resolve('hi');
}, Math.round(Math.random() * 3000));
return defer.promise;
}
var qs = [randomDefer(), randomDefer(), randomDefer(), randomDefer(), randomDefer()];
q.all(qs).spread(function () {
console.log('value handler');
console.log(arguments);
});
@clarkf
Copy link
Author

clarkf commented Jan 26, 2012

Output (doesn't matter whether I use .spread or .then):

sending 1
sending 2
sending 3
sending 4
sending 5
value handler
undefined
resolving 3
resolving 2
resolving 4
resolving 5
resolving 1

@clarkf
Copy link
Author

clarkf commented Jan 26, 2012

Ugh... Looks like I needed to return defer.promise. New output:

sending 1
sending 2
sending 3
sending 4
sending 5
resolving 1
resolving 3
resolving 5
resolving 4
resolving 2
value handler
{ '0': 'hi', '1': 'hi', '2': 'hi', '3': 'hi', '4': 'hi' }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment