what's wrong with this Promise using?
const count_elems = function(c){
  const elems = c.getElementsByTagName('p');
  console.log(elems.length);
};
const handler = function(){
    return new Promise(function (resolve, reject) {
     const cont = document.getElementById('cont');
     const p = document.createElement('p');
     for (let i=100000; i--;){
        cont.appendChild(p.cloneNode());
     }
     return resolve(cont);
  })
}
const test = function(){
  handler()
    .then(count_elems(c))
    .catch(function(e){console.log(e)});
};
document.getElementById('but')
  .addEventListener('click', test); <div id="cont"></div>
  <button id="but">click me</button> 
     
    