автор nodemailer ясно дал понять, что не поддерживает обещания. Я думал, что попробую свои силы в использовании bluebird, но моя попытка, похоже, не обнаружила никаких ошибок, которые выдает Nodemailer:
var nodemailer = require('nodemailer');
var Promise = require('bluebird');
// build the transport with promises
var transport = Promise.promisifyAll( nodemailer.createTransport({...}) );
module.exports = {
doit = function() {
// Use bluebird Async
return transport.sendMailAsync({...});
}
}
Затем я вызываю это, делая:
doit().then(function() {
console.log("success!");
}).catch(function(err) {
console.log("There has been an error");
});
Однако при указании недействительного адреса электронной почты я вижу это:
Unhandled rejection Error: Can't send mail - all recipients were rejected
Итак, ошибка nodemailer не перехватывается моим обещанием bluebird. Что я сделал не так?