From cb1f2d95b8abd2a28321ab20e510eee92bf35081 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Wed, 25 Nov 2020 15:15:12 +0300 Subject: [PATCH] added basic error handling... Signed-off-by: Alex A. Naanou --- package.json | 2 +- runner.js | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 403a96f..1f6fe1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-types", - "version": "5.0.5", + "version": "5.0.6", "description": "Generic JavaScript types and type extensions...", "main": "main.js", "scripts": { diff --git a/runner.js b/runner.js index 4131b5e..cc0c26a 100644 --- a/runner.js +++ b/runner.js @@ -369,7 +369,9 @@ object.Constructor('TaskManager', Array, events.EventMixin('flat', { this.named(name).stop() : this.forEach(function(task){ task.stop() }) }), + done: events.Event('done'), + error: events.Event('error'), // @@ -405,6 +407,9 @@ object.Constructor('TaskManager', Array, events.EventMixin('flat', { : task instanceof Promise ? Promise.interactive( function(resolve, reject, onmsg){ + onmsg(function(msg){ + msg == 'stop' + && reject() }) task.then(resolve, reject) }) // function... : Promise.interactive( @@ -426,9 +431,16 @@ object.Constructor('TaskManager', Array, events.EventMixin('flat', { // handle done... handler - .then(function(res){ - that.splice(that.indexOf(handler), 1) - that.trigger('done', task, res) + .then( + function(res){ + that.splice(that.indexOf(handler), 1) + that.trigger('done', task, res) }, + // err... + function(res){ + that.splice(that.indexOf(handler), 1) + that.trigger('error', task, res) }) + handler + .finally(function(){ that.length == 0 && that.done('all') })