Initial commit
[yaffs-website] / node_modules / asynckit / lib / terminator.js
1 var abort = require('./abort.js')
2   , async = require('./async.js')
3   ;
4
5 // API
6 module.exports = terminator;
7
8 /**
9  * Terminates jobs in the attached state context
10  *
11  * @this  AsyncKitState#
12  * @param {function} callback - final callback to invoke after termination
13  */
14 function terminator(callback)
15 {
16   if (!Object.keys(this.jobs).length)
17   {
18     return;
19   }
20
21   // fast forward iteration index
22   this.index = this.size;
23
24   // abort jobs
25   abort(this);
26
27   // send back results we have so far
28   async(callback)(null, this.results);
29 }