Skip to content

Commit

Permalink
Merge fb40ff9 into b418cb7
Browse files Browse the repository at this point in the history
  • Loading branch information
aearly committed Mar 10, 2019
2 parents b418cb7 + fb40ff9 commit de30ac8
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 17 deletions.
14 changes: 9 additions & 5 deletions lib/reflect.js
Expand Up @@ -44,14 +44,18 @@ export default function reflect(fn) {
var _fn = wrapAsync(fn);
return initialParams(function reflectOn(args, reflectCallback) {
args.push((error, ...cbArgs) => {
let retVal = {};
if (error) {
return reflectCallback(null, { error });
retVal.error = error;
}
var value = cbArgs;
if (cbArgs.length <= 1) {
[value] = cbArgs
if (cbArgs.length > 0){
var value = cbArgs;
if (cbArgs.length <= 1) {
[value] = cbArgs;
}
retVal.value = value;
}
reflectCallback(null, { value });
reflectCallback(null, retVal);
});

return _fn.apply(this, args);
Expand Down
5 changes: 4 additions & 1 deletion test/es2017/asyncFunctions.js
Expand Up @@ -656,7 +656,10 @@ module.exports = function () {
throw thrown;
});
fn(1, (err, result) => {
expect(result).to.eql({error: thrown});
expect(result).to.eql({
error: thrown,
value: undefined
});
done(err);
})
});
Expand Down
26 changes: 18 additions & 8 deletions test/parallel.js
Expand Up @@ -269,14 +269,18 @@ describe('parallel', () => {
}),
async.reflect((callback) => {
callback(null, 2);
}),
async.reflect((callback) => {
callback('error3');
})
],
(err, results) => {
assert(err === null, err + " passed instead of 'null'");
expect(results).to.eql([
{ error: 'error' },
{ error: 'error2' },
{ value: 2 }
{ error: 'error', value: 1 },
{ error: 'error2', value: 2 },
{ value: 2 },
{ error: 'error3' },
]);
done();
});
Expand All @@ -296,14 +300,20 @@ describe('parallel', () => {
setTimeout(() => {
callback(null, 'three');
}, 100);
},
four(callback) {
setTimeout(() => {
callback('four', 4);
}, 100);
}
};

async.parallel(async.reflectAll(tasks), (err, results) => {
expect(results).to.eql({
one: { value: 'one' },
two: { error: 'two' },
three: { value: 'three' }
three: { value: 'three' },
four: { error: 'four', value: 4 }
});
done();
})
Expand All @@ -321,21 +331,21 @@ describe('parallel', () => {
it('parallel empty object with reflect all (errors)', (done) => {
var tasks = {
one(callback) {
callback('one');
callback('one', 1);
},
two(callback) {
callback('two');
},
three(callback) {
callback('three');
callback('three', 3);
}
};

async.parallel(async.reflectAll(tasks), (err, results) => {
expect(results).to.eql({
one: { error: 'one' },
one: { error: 'one', value: 1 },
two: { error: 'two' },
three: { error: 'three' }
three: { error: 'three', value: 3 }
});
done();
})
Expand Down
10 changes: 7 additions & 3 deletions test/series.js
Expand Up @@ -118,14 +118,18 @@ describe('series', () => {
}),
async.reflect((callback) => {
callback(null, 1);
}),
async.reflect((callback) => {
callback('error3');
})
],
(err, results) => {
assert(err === null, err + " passed instead of 'null'");
expect(results).to.eql([
{ error: 'error' },
{ error: 'error2' },
{ value: 1 }
{ error: 'error', value: 1 },
{ error: 'error2', value: 2 },
{ value: 1 },
{ error: 'error3' },
]);
done();
});
Expand Down

0 comments on commit de30ac8

Please sign in to comment.