mirror of
https://github.com/flynx/types.js.git
synced 2025-10-28 18:10:08 +00:00
bugfix..
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
ca4983c630
commit
8c2220d13a
32
Promise.js
32
Promise.js
@ -851,33 +851,29 @@ object.Constructor('IterablePromise', Promise, {
|
||||
// NOTE: this is needed for self-resolve...
|
||||
writable: true,
|
||||
})
|
||||
|
||||
// handle promise state...
|
||||
try{
|
||||
var res = obj.__unpack(list)
|
||||
}catch(err){
|
||||
promise.reject(err) }
|
||||
res instanceof Promise ?
|
||||
res
|
||||
.then(function(list){
|
||||
promise.resolve(list) })
|
||||
.catch(promise.reject)
|
||||
: promise.resolve(res)
|
||||
// XXX EXPEREMENTAL
|
||||
// XXX do we handle errors here???
|
||||
// self-resolve state...
|
||||
list instanceof Promise ?
|
||||
list.then(function(list){
|
||||
obj.__packed = list })
|
||||
/*/ XXX use selfResolve(..)
|
||||
: selfResolve(list) }
|
||||
/*/
|
||||
: list.forEach(function(elem, i){
|
||||
|
||||
if(res instanceof Promise){
|
||||
res.then(
|
||||
function(list){
|
||||
promise.resolve(list)
|
||||
// self-resolve...
|
||||
obj.__packed = list },
|
||||
handleError)
|
||||
} else {
|
||||
promise.resolve(res)
|
||||
// self-resolve...
|
||||
res.forEach(function(elem, i){
|
||||
elem instanceof Promise
|
||||
&& elem.then(function(elem){
|
||||
lst = obj.__packed.slice()
|
||||
lst[i] = elem
|
||||
obj.__packed = lst }) }) }
|
||||
//*/
|
||||
obj.__packed = lst }) }) } }
|
||||
return obj },
|
||||
})
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ig-types",
|
||||
"version": "6.25.0",
|
||||
"version": "6.25.1",
|
||||
"description": "Generic JavaScript types and type extensions...",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
16
test.js
16
test.js
@ -495,7 +495,21 @@ var cases = test.Cases({
|
||||
function(err){
|
||||
return 'done' })
|
||||
== 'done',
|
||||
`.${iter}(..): late onerror(..)`) }
|
||||
`.${iter}(..): late onerror(..)`)
|
||||
assert(
|
||||
await Promise[iter](
|
||||
(function*(){
|
||||
yield* [1,2,3]
|
||||
throw 'ERROR' })(),
|
||||
function(e){
|
||||
if(e == 4){
|
||||
throw 'ERROR' }
|
||||
return e },
|
||||
function(err){
|
||||
return 'done' })
|
||||
== 'done',
|
||||
`.${iter}(..): late onerror(..)`)
|
||||
}
|
||||
},
|
||||
|
||||
// Date.js
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user