From 249778ee971afdf69f18c163db91fbd9e52c6206 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Wed, 2 Dec 2020 05:29:38 +0300 Subject: [PATCH] added queue handler mode... Signed-off-by: Alex A. Naanou --- Promise.js | 1 + package.json | 2 +- runner.js | 9 +++++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Promise.js b/Promise.js index 773c232..a12f029 100644 --- a/Promise.js +++ b/Promise.js @@ -145,6 +145,7 @@ object.Constructor('IterablePromise', Promise, { // -> iterable-promise // // + // XXX if list is an iterator, can we fill this async??? __new__: function(_, list, handler){ var promise diff --git a/package.json b/package.json index eef4c90..2466a2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-types", - "version": "5.0.29", + "version": "5.0.30", "description": "Generic JavaScript types and type extensions...", "main": "main.js", "scripts": { diff --git a/runner.js b/runner.js index 3075907..364ae0a 100644 --- a/runner.js +++ b/runner.js @@ -63,6 +63,8 @@ object.Constructor('Queue', Array, { }, events.EventMixin('flat', { // config... // + handler: null, + pool_size: 8, poling_delay: 200, @@ -103,7 +105,7 @@ object.Constructor('Queue', Array, { // events/actions - state transitions... // - // XXX would be nice to run a number of tasks... + // XXX would be nice to run a specific number of tasks and stop... start: events.Event('start', function(handle){ // can't start while running... if(this.state == 'running'){ @@ -156,7 +158,9 @@ object.Constructor('Queue', Array, { // result here or wrap it into a standard return value like a // promise... __run_task__: function(task, next){ - return typeof(task) == 'function' ? + return typeof(this.handler) == 'function' ? + this.handler(task) + : typeof(task) == 'function' ? task() : (task instanceof Queue && this.sub_queue == 'unwind') ? @@ -219,6 +223,7 @@ object.Constructor('Queue', Array, { return this }, // run one task from queue... // NOTE: this does not care about .state... + // XXX revise error handling... runTask: function(next){ var that = this var running = this.__running = this.__running || []