await
не будет работать внутри обещания.
Согласно данному коду, вам не нужно определять новое обещание внутри функции asyn c.
Если вам нужно новое обещание, вы не можете ждать его внутри обратного вызова обещания. Вместо этого следует использовать формат затем.
sendEmail.otp(val,mailid,sub).then((mail) => {
console.log("mail -- ",mail);
})
Кроме того, функция otp имеет callbck, поэтому она должна быть заключена в обещание.
exports.otp = async function(val,mailid,sub) {
//some code
return new Promise((resolve, reject) = {
transporter.sendMail(options,(error,info) => {
if(error){
//error logs
respobj = {status: "err"};
} else {
//success logs
respobj = {status: "success"};
}
return resolve(respobj);
})
})
}