То, что вы делаете, запускает все запросы одновременно.Не гарантируется, какой запрос завершится первым, поэтому порядок, в котором вы их вызываете, не гарантирует, что они будут выполняться в той же последовательности.Попробуйте использовать это:
var http = require('http');
var request = require('request');
var nodemailer = require('nodemailer');
var urlStr = 'http://localhost:1080/email/all'
var options = {
url: urlStr,
method: 'DELETE'
};
var transporter = nodemailer.createTransport({
port: 1025,
ignoreTLS: true,
});
const mailOptions = {
from: 'email1@googlemail.com', // sender address
to: 'email2@yahoo.com', // list of receivers
subject: 'Hello world', // Subject line
html: '<p>Hello world, stay happy :)</p>'// plain text body
};
deleteEmails(function(){
sendMail(mailOptions, function(){
getEmails(function(res, body){
console.log(body);
})
})
})
function deleteEmails(successCallback){
request.del('http://localhost:1080/email/all', function (err){
if(err)
console.log(err)
else if(successCallback) {
successCallback()
}
})
}
function sendMail(mailOptions, successCallback){
transporter.sendMail(mailOptions, function (err, info) {
if(err)
console.log(err)
else if(successCallback) {
successCallback()
}
});
}
function getEmails(successCallback){
console.log("getting emails");
request('http://localhost:1080/email/',function(err,res,body){
if(err){
console.log(err);
} else {
successCallback(res, body)
}
});
}