• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1var abort = require('./abort.js')
2  , async = require('./async.js')
3  ;
4
5// API
6module.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 */
14function 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}
30