3 category: JavaScript libraries
6 ### Creating promises (Q.promise)
8 Q.promise (ok, fail) =>
11 fail new Error("Failure")
17 promises = [saveDisk(), saveCloud()]
19 # When all succeeds, or *at least one* error
20 Q.all(promises).done ->
23 # Same, but get the values
24 Q.all(promises).spread (a, b) ->
28 # When all either succeeds or errors
29 Q.allSettled(promises).done -> ...
32 ### Creating promises from Node
34 # Works like .call() or .apply()
36 Q.nfcall(FS.readFile, 'foo.txt', 'utf-8')
39 Q.nfapply(FS.readFile, ['foo.txt', 'utf-8'])
42 Q.npost(FS, 'readFile', ['foo.txt, 'utf-8'])
45 Q.npost(FS, 'readFile', 'foo.txt, 'utf-8')
48 readFile = Q.denodeify(FS.readFile)
49 readFile('foo.txt').then -> ...
51 ### Promises to Node async
53 createUser = (next) ->
59 # Shortcut for .then(ok, fail, progress)
63 .progress (percent) ->
71 console.error "Oh well", e
75 * https://github.com/kriskowal/q/wiki/API-Reference