async/await中reject的问题
Posted xiaozhumaopao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了async/await中reject的问题相关的知识,希望对你有一定的参考价值。
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的问题的主要内容,如果未能解决你的问题,请参考以下文章