redis-smq-common
Version:
Provides essential components and utilities shared across RedisSMQ packages.
29 lines • 894 B
JavaScript
import { async } from './async.js';
export function withCallbackList(setups, operation, callback) {
const results = [];
let hasError = false;
if (setups.length === 0) {
return operation(results, callback);
}
async.eachOf(setups, (setup, index, done) => {
setup((err, resource) => {
if (hasError)
return;
if (err) {
hasError = true;
return done(err);
}
if (resource === undefined) {
hasError = true;
return done(new Error(`Setup operation at index ${index} returned empty result`));
}
results[index] = resource;
done();
});
}, (err) => {
if (err)
return callback(err);
operation(results, callback);
});
}
//# sourceMappingURL=with-callback-list.js.map