将一个方法转换为promise:Nodejs
Convert a method into a promise : Nodejs
我有下面的Nodejs方法,我想在上面调用并执行.then
函数。我不知道如何编写这个方法,以便在上面使用.then()
方法。
我在nodemailer.js
中有一个sendEmail
方法,我想在我的app.js
中调用它并在上执行.then()
方法。它目前给我错误:
nodeMailer.sendEmail().then(函数…
TypeError:无法读取未定义的属性"then"。
我理解这是因为我的方法不返回承诺。我不知道如何编写此方法以在保留其原始功能的同时返回promise。
nodemailer.js
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport('smtps://********');
var mytext="my new text";
var mailOptions ={
from: '"Reviews"<Reviews@reviews.com>', // sender address
to: 'Someone@something.com', // list of receivers
subject: 'Test', // Subject line
text: '', // plaintext body
}
module.exports = {
mailOptions:mailOptions,
sendEmail: function() {
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error);
} else {
console.log('Message sent: ' + info.response);
}
})
}
}
在app.js
中调用以上给出上述错误
app.js
var nodeMailer = require('./nodeMailer')
var cron = require('cron');
var cronJob1 = cron.job("*/30 * * * * *", function(){
Model.find(query,function (err, results) {
if (err) {
res.status(500).json({ message: 'Something Broke!' });
} else {
nodeMailer.mailOptions.text = JSON.stringify(results);
nodeMailer.sendEmail().then(function(){
Model.findAndUpdate(query, { $set: { "email": true }},
function(err, resp){
console.log(resp, "successfully updated")
})
});
}
});
});
cronJob1.start();
根据nodemailer文档,如果在sendMail
调用中省略回调,它将返回一个Promise
。那就把它还给我吧。
sendEmail: function() {
return transporter.sendMail(mailOptions)
.then(
function(info) {
console.log('Message sent: ' + info.response);
},
function(error){
console.log(error);
}
);
}
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 将一个方法转换为promise:Nodejs
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 使用回调hell将构建转换为promise hell
- 如何在将Node异步函数转换为promise时使用Q库
- 在nodejs中将回调转换为promise
- 如何将嵌套_.each转换为同步方法?首选使用 Promise 或 Async.waterfall
- 如何将具有两个回调的函数调用转换为promise
- 如何使用Q将事件监听器转换为promise
- 将节点异步代码转换为promise
- 将jQuery.each中带有multiple.get()的函数转换为q promise
- 如何将promise序列转换为Rx.用RxJS观察对象
- Node.js Bluebird Promise抱怨“将循环结构转换为json”
- 将Json值转换为小写"Uncaught(in promise) "SAPUI5
- 将可以多次调用的Javascript回调转换为promise
- 我能把callback转换成promise吗?
- 如何在ES6中将回调代码转换为promise
- 如何将Q.defer()转换为Promise作为实例变量
- 在promise(Node.js)(OpenTok)中转换带有回调的函数
- css转换的可选promise()函数