wip: refactor abstract mapreduce#9177
Conversation
| throw new Error(row.reason); | ||
| } | ||
| } | ||
|
|
There was a problem hiding this comment.
doesn't this make this code path synchronous instead of asynchronous? I have not looked at the bigger picture yet, but my gut feeling says that handling attachments (large binary values) probably wants to be async?
There was a problem hiding this comment.
Good question! I was thinking that its safe on this call since the function addHttpParam is already async and before calling postprocessAttachments we still await the db.fetch and response.json.
I thought that since postprocessAttachments and readAttachmentsAsBlobOrBuffer themselves are synchronous, wrapping the result in a Promise and calling postprocessAttachments on .then() only slightly delays the call? - if not this is definitely where my confusion lies! :)
did some ES6 refactoring:
converted functions
updatePurgeSeq, saveKeyValues, createTask, getRecentPurgestoasync/awaitto replace promise chainsrefactored postProcessAttatchments
to accept the resolved result (res) directly, wich enables to remove the.then()` on the callremoved unneccessary promise wrappers around calls of:
postProcessAttatchments(is now invoked directly with the resolved result - instead of with.then()chaining)queryPromised(the async function already returns a promise)replaced the use of
fin(final promise factory function) withtry/finallyblockremoved the last
varnote:
currently repeadedly writing out the
defaultstofunctionality, will take care of it next :)