I am trying to understand the logic of promises here. But I can't wrap my head around the code.
Can someone help me understand?
What does (r)=> fn = r, means in this code.
function promise(a,b) {
  return new Promise((resolve,reject) => {
      if(a%2 !== 0) {
        reject('ODD ');
        return;
      } 
      resolve('even');
  });
}
let list_of_promise = [ promise(1),promise(2)
,promise(2),promise(2),promise(2),promise(2)
,promise(2),promise(2),promise(2),promise(2)
,promise(2),promise(2),promise(2),promise(2),promise(2)
,promise(2),promise(2),promise(2),promise(2)
,promise(2)];
function listOfPromise(list_of_promise) {
  let arr = [];
  let fn;
  let count = 0;
  list_of_promise.map( (p) => {
    p.then((res)=>{
      arr.push(res);
      arr.length === 10 && fn(arr);
    });
  })
  return new Promise((r,rj) => fn= r);
}
listOfPromise(list_of_promise).then((res)=>{
  console.log("result set ", rest);
});