Skip to content

Instantly share code, notes, and snippets.

@efekarakus
Last active June 1, 2017 05:33
Show Gist options
  • Save efekarakus/6a0edb2ce4639cfbda5922d25d89c808 to your computer and use it in GitHub Desktop.
Save efekarakus/6a0edb2ce4639cfbda5922d25d89c808 to your computer and use it in GitHub Desktop.
closure-over-multiple-parameters
// Before
function recordMetricOnCompletion(metricName, promise) {
const metric = Metric.newTimedMetric(metricName);
return promise
.then(values => {
metric.emitSuccess();
return Promise.resolve(values);
})
.catch(reason => {
metric.emitFailure();
return Promise.reject(reason);
});
}
// After
function getRecordedPromise(metricName) {
const metric = Metric.newTimedMetric(metricName);
return (promise) => {
return promise
.then(values => {
metric.emitSuccess();
return Promise.resolve(values);
})
.catch(reason => {
metric.emitFailure();
return Promise.reject(reason);
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment