I'd go with
.map(function (object) {
return processItem(object).then(function(processResult) {
return {input: object, result: processResult};
});
})
Now downloadItem
can access both .input
and .result
of each processed item.