这是我的小 twilio 函数/类返回的 promise ,我将其导入到另一个文件中。我收到 err
和 res
在这里返回它的 promise
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)
}
}
请帮忙!!!谢谢
最佳答案
您目前正在返回回调,它可能不会返回Promise
- 切换顺序,返回在sendMessage
回调运行时解析的Promise
。另请注意,如果存在 err
,则应reject
;如果没有 err
,则应使用 res
进行resolve
,而不是相反:
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
}
})
})
}
}
关于javascript - 等待而不是等待解决 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52811603/