(message) => {}
is an arrow function and async message => {}
is an async function
The essential difference is that in an async
function you can await
for asynchronous code completion.
And as you can read in mdn page for arrow function expressions:
// Parentheses are optional when there's only one parameter name:
(singleParam) => { statements }
singleParam => { statements }
so
async message => {CODE}
// is equal to
async (message) => {CODE}
and
(message) => {}
// is equal to
message => {}
What's important is to be consistent in the way you use parentheses, and the best way to achieve 100% consistency in your code is to use a tool like prettier.