节点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') })
- 应该在Nodejs + Koa应用程序中使用AWS SQS消息轮询?
- 什么AWS服务用于nodeJs原始tcp套接字聊天服务器
- 如何确认订阅并获取HTTP端点的SNS通知?
- 为什么Node.js AWS-SDK在创build本地队列时返回了错误的SQS队列URL
- 如何在客户端将可查看file upload到Amazon S3?
- aws sdk ec2.describeInstances未列出所有EC2实例
- 我如何把对象的amazon s3使用presigned url?
- 是否有一个好的对象映射器可以在nodejs中使用的Amazons dynamodb(通过aws sdk)?
- 如何在AWS中部署node.js应用程序