;TLDR: Don't write dependent promise chains; write destructured async/await using the following snippit. GIST
const ad = async promise => {
const [err, resp] = await promise.then(x => [{}, x]).catch(x => [x, {}])
const [{ message }, { body }] = [err, resp]
return [message, body]
}