在 `Then` 中调用相同的 promise
Call same promise inside `Then`
我想知道你是否可以像这样调用同一个 promise 两次
//receiver is sent if the mail should be sent to someone else and will have a
//different email boy
const body = (req.body.receiver) === undefined ? 'regular mail': 'admin email body'
//the sendEmail Function takes to, from and body arguments
await sendEmail(req.body.requestedBy, someEmailAddress, body)
.then(info => {
console.log(info)
//a mail should be sent only to requester if req.body.receiver is present in the request
if (req.body.receiver) {
await sendEmail(req.body.receiver, someEmailAddress, body)
.then(res => {
console.log(res)
})
.catch(err => {
console.log(err)
})
}
return res.send(data)
})
.catch(err => {
console.log('Error:', err)
})
当然这会被包装在一个异步函数中,因为我创建的 sendMail 函数 returns 是一个承诺。邮件通过nodemailer发送。
你在你的例子中所做的在技术上并不是两次调用同一个承诺。您正在调用同一个函数两次,sendMail
。每次调用该函数时,它 return 都是一个新的承诺。
所以答案是肯定的,您可以多次调用该函数,即使它 return 是一个承诺,因为它每次都会 return 一个新的承诺。
我想知道你是否可以像这样调用同一个 promise 两次
//receiver is sent if the mail should be sent to someone else and will have a
//different email boy
const body = (req.body.receiver) === undefined ? 'regular mail': 'admin email body'
//the sendEmail Function takes to, from and body arguments
await sendEmail(req.body.requestedBy, someEmailAddress, body)
.then(info => {
console.log(info)
//a mail should be sent only to requester if req.body.receiver is present in the request
if (req.body.receiver) {
await sendEmail(req.body.receiver, someEmailAddress, body)
.then(res => {
console.log(res)
})
.catch(err => {
console.log(err)
})
}
return res.send(data)
})
.catch(err => {
console.log('Error:', err)
})
当然这会被包装在一个异步函数中,因为我创建的 sendMail 函数 returns 是一个承诺。邮件通过nodemailer发送。
你在你的例子中所做的在技术上并不是两次调用同一个承诺。您正在调用同一个函数两次,sendMail
。每次调用该函数时,它 return 都是一个新的承诺。
所以答案是肯定的,您可以多次调用该函数,即使它 return 是一个承诺,因为它每次都会 return 一个新的承诺。