这是我的小twilio函数/类返回的诺言,我确实将其导入到另一个文件中。我在这里得到 err
和 res
的承诺
class TwilioService {
sendSms(to, message) {
return this.twilio.sendMessage(sms,(err,res) => {
return new Promise((resolve, reject) => {
if (err) {
console.log(err)
return resolve(res)
} else {
console.log(res, 'ppppppppppppppppp')
return reject(res)
}
})
})
}
}
现在这是我正在使用的函数。
但是,当我执行console.log(sendSms)
时,即使从twilio函数返回promise,我也无法在控制台中定义它。我在这里做错了。
import Twilio from '../../services/twilio'
const twilio = new Twilio()
const handler = async(request, reply) => {
try {
const sendSms = await twilio.sendSms(`+91${mobile}`, `Welcome to App. User ${verificationCode} as your signup OTP.`)
console.log(sendSms, 'oooooooooooooooo')
} catch(err) {
console.log(err)
}
}
请帮助!!!谢谢
答案 0 :(得分:7)
您目前正在返回回调,它可能不会返回Promise
-切换顺序,返回Promise
,当{ {1}}回调运行。另外请注意,如果没有sendMessage
,则应该reject
err
,如果没有resolve
,则res
与err
一起使用,相反:
class TwilioService {
sendSms(to, message) {
return new Promise((resolve, reject) => { // switch these two lines
return this.twilio.sendMessage(sms, (err, res) => { // switch these two lines
if (err) {
console.log(err)
return reject(res) // reject on error, don't resolve
} else {
console.log(res, 'ppppppppppppppppp')
return resolve(res) // resolve when there's no error
}
})
})
}
}