Javascript 如何解析来自另一个函数的承诺

Javascript 如何解析来自另一个函数的承诺,javascript,promise,es6-promise,resolve,Javascript,Promise,Es6 Promise,Resolve,我不知道如何解决来自其他函数的承诺 1.如何通过发送邮件告诉blabla()“邮件已收到” 此电子邮件模块管理邮件,当我们收到电子邮件时,它会启动“新建” mail.on('new',函数(mail){}) 此模块执行任务,并且在某些时候必须等待\u邮件,然后才能继续 function blabla() { [.. I do stuff ..] console.log('now we must wait for a new mail') const the_mail =

我不知道如何解决来自其他函数的承诺

1.如何通过发送邮件告诉blabla()“邮件已收到”

  • 此电子邮件模块管理邮件,当我们收到电子邮件时,它会启动“新建”
  • mail.on('new',函数(mail){})

  • 此模块执行任务,并且在某些时候必须等待\u邮件,然后才能继续

    function blabla() {
        [.. I do stuff ..]
        console.log('now we must wait for a new mail')
        const the_mail = await waiting_for_mail()
        [.. I can continue stuff (I have the mail) ..]
    }
    
    • 这两个模块必须分开,它们执行!=任务
    • 第一个管理邮件,第二个管理短信
    • 没有定义waiting_for_mail(),我想我必须使用这个逻辑

  • 好吧,我没有什么要说的,但我可以从中得到一个建议:

    function waiting_for_mail() {
        return new Promise(resolve => {
            mail.once('new', resolve);
        });
    }
    

    在哪里以及如何定义
    等待邮件?它是一个异步函数还是返回一个承诺?我还没有定义它,我想这是我应该使用的逻辑,因为我必须“等待”邮件。请提供您的实际代码,这样我们可以帮助更容易地识别问题。在这种情况下,
    waiting_for_mail
    应该返回一个解析为接收邮件的承诺。好的,你是怎么做到的?这是我的问题。当我收到一封电子邮件时,我如何让blabla()知道,以便blabla()可以继续他的工作,使用mail ReceiveEdit可能应该使用
    mail.once()
    ,在调用侦听器时取消其订阅