首页 > 其他 > 详细

async/await中reject的问题

时间:2019-07-16 19:03:14      阅读:308      评论:0      收藏:0      [点我收藏+]

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的问题

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

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!