节点JS + AWS承诺两次触发
AWS = require('aws-sdk'); AWS.config.region = 'eu-west-1'; ses = new AWS.SES(); var params = {}; return ses.sendEmail(params, function (err, data) { console.log('----->sending email') }).promise().then((data) => { console.log('---->sending promise') }).catch((err) => { console.log('----->am in error') console.log(err) })
有人可以帮我上面的代码承诺触发两次。
我应该得到下面
—–>发送电子邮件
—->发送诺言
但是我得到了
—–>发送电子邮件
—->发送诺言
—–>发送电子邮件
看起来你提供了一个callback函数和使用承诺的方法。
实际上,这意味着您有两个不同的function在请求完成时执行。
您可以只使用承诺方式:
ses.sendEmail(params).promise().then((data) => { console.log('Email was sent') }).catch((err) => { console.log('There was an error') })
或者你可以使用callback方法:
ses.sendEmail(params, function(err, data) { if (err) { console.log('There was an error') return } console.log('Email was sent') })