diff options
| author | Di Peng | 2011-07-09 18:15:40 -0700 |
|---|---|---|
| committer | Igor Minar | 2011-07-20 17:33:18 -0700 |
| commit | 8fa066190af2b2267a5e8111a41beb6e8af5c340 (patch) | |
| tree | 221e9b67892b9b09047ae8a8b6b50f5cbc9e2ead /docs/src/callback.js | |
| parent | e90b741c9492a65e159c842afe49383f1868308e (diff) | |
| download | angular.js-8fa066190af2b2267a5e8111a41beb6e8af5c340.tar.bz2 | |
refactor(gen-docs): use q, qq, q-fs (node modules) to write gen-docs
- re-write gendocs.js, reader.js and writer.js
- all calls are asynchronous
Diffstat (limited to 'docs/src/callback.js')
| -rw-r--r-- | docs/src/callback.js | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/docs/src/callback.js b/docs/src/callback.js deleted file mode 100644 index aaf69cde..00000000 --- a/docs/src/callback.js +++ /dev/null @@ -1,69 +0,0 @@ -function noop(){} - -function chain(delegateFn, explicitDone){ - var onDoneFn = noop; - var onErrorFn = function(e){ - console.error(e.stack || e); - process.exit(-1); - }; - var waitForCount = 1; - delegateFn = delegateFn || noop; - var stackError = new Error('capture stack'); - - function decrementWaitFor() { - waitForCount--; - if (waitForCount == 0) - onDoneFn(); - } - - function self(){ - try { - return delegateFn.apply(self, arguments); - } catch (error) { - self.error(error); - } finally { - if (!explicitDone) - decrementWaitFor(); - } - }; - self.onDone = function(callback){ - onDoneFn = callback; - return self; - }; - self.onError = function(callback){ - onErrorFn = callback; - return self; - }; - self.waitFor = function(callback){ - if (waitForCount == 0) - throw new Error("Can not wait on already called callback."); - waitForCount++; - return chain(callback).onDone(decrementWaitFor).onError(self.error); - }; - - self.waitMany = function(callback){ - if (waitForCount == 0) - throw new Error("Can not wait on already called callback."); - waitForCount++; - return chain(callback, true).onDone(decrementWaitFor).onError(self.error); - }; - - self.done = function(callback){ - decrementWaitFor(); - }; - - self.error = function(error) { - var stack = stackError.stack.split(/\n\r?/).splice(2); - var nakedStack = []; - stack.forEach(function(frame){ - if (!frame.match(/callback\.js:\d+:\d+\)$/)) - nakedStack.push(frame); - }); - error.stack = error.stack + '\nCalled from:\n' + nakedStack.join('\n'); - onErrorFn(error); - }; - - return self; -} - -exports.chain = chain; |
