Почему мой промис попадает в состояние pending?

Мне нужно реализовать следующий алгоритм:

  1. Установить ожидания появления класса .cdn_download_item.
  2. Кликать по ссылке (только после этого появляется класс .cdn_download_item).
  3. Срабатывания DOM Inserted => Составить список ссылок и вывести их.

Сейчас у меня появляется Promise {<pending>} внутри которого есть список который мне нужен, в принципе все сработало.

Но почему состояние промиса pending, а не fulfilled? И как сделать, чтобы было fulfilled?

(async function(){

  var returnArray = new Array();
  function wait(selector) {
    return new Promise((resolve) => {
      const listener = () => {
        const node = document.querySelector(selector);
        if (node) {
          document.removeEventListener('DOMNodeInserted', listener);
          resolve(node);
        }
      };
      document.addEventListener('DOMNodeInserted', listener);
    });
  }

  function myclick(){
    return new Promise(resolve => {
      var a = document.querySelector('#dle-content > div.section > ul > li:nth-child(3)').click(); 
      resolve(a);
    })
  }


  async function myf() {
    let res0 = await myclick();   
    let res1 = await wait('.cdn_download_item').then(() => {
      var elements = Array.from(document.querySelectorAll('.cdn_download_item span:first-child'));
      var linksArray = new Array();
      for (element of elements) {
        linksArray.push(element.innerText);
      }
      returnArray.push(linksArray);
    }) 

    let res2 = await returnArray;
    return res2;     
  }

  return myf();

})();

Ответы (0 шт):