首页 > 解决方案 > 自定义JS提示功能

问题描述

这个想法:调用异步customPrompt()等待,返回按钮点击truefalse

目前我可以按应有的方式显示提示,但我被困在事件侦听器上,因为该函数只返回未解决的承诺

async function customPrompt() {

  prompt.classList.add('show);

  prompt.querySelector('.btnTrue').addEventListener('click', () => {
    return true;
  })

  prompt.querySelector('.btnFalse').addEventListener('click', () => {
    return false;
  })
}

单击其中一个按钮后,如何解决承诺?

PS:我对 async/await 很陌生,但在网上找不到任何关于这样的文章

任何帮助表示赞赏;)

标签: javascriptasynchronousecmascript-6async-awaitpromise

解决方案


Promise在您的customPrompt函数内部创建,并resolve在单击按钮时创建

function customPrompt() {
  return new Promise((resolve) => {
      prompt.classList.add('show');

        prompt.querySelector('.btnTrue').addEventListener('click', () => {
          prompt.classList.remove('show');
          resolve(true);
        })

        prompt.querySelector('.btnFalse').addEventListener('click', () => {
          prompt.classList.remove('show');
          resolve(false);
        })
      })
  }
}

推荐阅读