Array and loops through but I want to be able to run all of them in parallel instead as I don\'t want to run one after another.
I basically want to store all endpoin
You can use Promise.map
with .bind
:
function getComponentStatuses(componentsToCheck) {
return Promise.map(componentsToCheck, function() {
var start = Date.now();
return getAsync({
url: component.endpoint,
timeout: component.timeout
})
.bind({
name: component.name,
status: null,
body: null,
time: null
})
.spread(function(response, body){
Logger.info('GET took ' + end + 'ms.');
this.status = response.statusCode;
this.body = body;
return this;
})
.catch(function(e) { return this; })
.finally(function() { this.time = Date.now() - start; })
});
}
Note that your timing method is incorrect because the http agent might throttle requests.