redis-smq-common
Version:
Provides essential components and utilities shared across RedisSMQ packages.
32 lines • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withCallbackList = withCallbackList;
const async_js_1 = require("./async.js");
function withCallbackList(setups, operation, callback) {
const results = [];
let hasError = false;
if (setups.length === 0) {
return operation(results, callback);
}
async_js_1.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