| var abort = require('./abort.js') | |
| , async = require('./async.js') | |
| ; | |
| // API | |
| module.exports = terminator; | |
| /** | |
| * Terminates jobs in the attached state context | |
| * | |
| * @this AsyncKitState# | |
| * @param {function} callback - final callback to invoke after termination | |
| */ | |
| function terminator(callback) | |
| { | |
| if (!Object.keys(this.jobs).length) | |
| { | |
| return; | |
| } | |
| // fast forward iteration index | |
| this.index = this.size; | |
| // abort jobs | |
| abort(this); | |
| // send back results we have so far | |
| async(callback)(null, this.results); | |
| } |