码迷,mamicode.com
首页 > 其他好文 > 详细

async/await中reject的问题

时间:2019-07-16 18:21:47      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:await   name   outer   实验   验证码   问题   验证   wait   mod   

promise 返回的 resolve 对象可能用 await 去接,
但是 reject 无法用 await 接收到,所以要用 try catch 去处理

例如发送邮件的接口设置:

async function verify(body){
//发送邮件服务器的配置
  let transporter = nodeMailer.createTransport({
    service:‘qq‘,
    auth:{
      user:SMTP_CONF.user,
      pass:SMTP_CONF.pass
    }
  })
  //用户填写的邮件信息,也就是收邮件的信息
  let ko = {
    code:SMTP_CONF.code(),
    expire:SMTP_CONF.expire(),
    email:body.email,
    user:body.username,
  }
  //发送邮件的内容
  let mailOptinons = {
    from:`‘认证邮件‘<${SMTP_CONF.user}>`,
    to:ko.email,
    subject:‘<实验验证注册码>‘,
    html:`您的邀请码是${ko.code}`
  }
  let mypromise = new Promise((resolve,reject)=>{
    transporter.sendMail(mailOptinons,(err,info)=>{
        if(err){
            reject(err);
        }
        resolve(info);
    })
  })
  return mypromise;
}

调用函数的时候用try catch 

router.post(‘/verify‘,async(ctx,next)=>{
  let result = await verify(ctx.request.body).catch(err=>{
    ctx.body = new ErrorModel(‘发送失败‘);
  })
  if(result){
    ctx.body = new SuccessModel(‘验证码已发送,可能会有延时,有效期1分钟‘);
  }
})

 

async/await中reject的问题

标签:await   name   outer   实验   验证码   问题   验证   wait   mod   

原文地址:https://www.cnblogs.com/xiaozhumaopao/p/11196265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!