I'm So confused why we shouldn't use bracket in callback function?

in this exercise , i got So confused!
at first, in the sample code :


 let myPromises = Promise.all([returnsPromOne(), returnsPromTwo(), returnsPromThree()]);

myPromises
  .then((arrayOfValues) => {
    console.log(arrayOfValues);
  })
  .catch((rejectionReason) => {
    console.log(rejectionReason);
  });

used brackets for callback functions in Promice.all.
but when i try to do this to solve the code, the solution was without them.

and second, when i try to writ callback function for .then and .catch, (witch means onFulfill and onReject functions like

Promise.all([checkSunglasses(),checkPants(),checkBags()])
   .then(onFulfill())
    .catch(onReject());

). the site was stop me again and at least it shows i must use their callback functions without brakets.

and in the end, please help my to find out why we don’t use new Promise for those 3 function when we declare them and just pass the function to them.

So why?
please help me :sleepy: :cold_sweat: :pray:

Ok, about the brackets.

Promise.all([checkSunglasses, checkPants, checkBags])
  .then(onFulfill)
  .catch(onReject);

checkSunglasses, checkPants and checkBags are no functions they are variables with the results of function calls assigned to them.

const checkSunglasses = checkAvailability('sunglasses', 'Favorite Supply Co.');
const checkPants = checkAvailability('pants', 'Favorite Supply Co.'); 
const  checkBags = checkAvailability('bags', 'Favorite Supply Co.');

Variables are used to aid in readability and better adjustment in case that’s needed. Calling the functions directly in the promise would make a long line of code which is harder to read.

See:

Promise.all([checkAvailability('sunglasses', 'Favorite Supply Co.'), checkAvailability('pants', 'Favorite Supply Co.'), checkAvailability('bags', 'Favorite Supply Co.')])
  .then(onFulfill)
  .catch(onReject);