terminator.js (533B)
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 }