From 66d894837bd63a0d66fc7d112a5d2029801cb7e6 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Tue, 10 Jan 2023 16:00:47 +0300 Subject: [PATCH] better handling of inputs... Signed-off-by: Alex A. Naanou --- Promise.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Promise.js b/Promise.js index e018b62..4e03bcf 100644 --- a/Promise.js +++ b/Promise.js @@ -66,11 +66,24 @@ var generator = require('./generator') // copy... // XXX add special cases like SyncPromise, ...etc. // XXX migrate these back into InteractivePromise... +// XXX does this need onerror(..) ??? var pack = module.pack = function(list){ + // promise list... if(list instanceof Promise){ return list.then(pack) } + // async promise list... + if(typeof(list) == 'object' + && Symbol.asyncIterator in list){ + return list + .then(function(list){ + return pack(list) }) } + // generator list... + if(typeof(list) == 'object' + && Symbol.iterator in list){ + list = [...list] } + // array... return list .map(function(elem){ return elem instanceof Array ? @@ -86,6 +99,8 @@ function(list){ // handle(, [, ]) // -> // +// XXX revise nested promise handling... +// ...something like simplify() -> ??? var handle = module.handle = function(list, handler, onerror){