I warten müssen, für eine Async Funktion vor Iterieren über die Anordnung zu vervollständigen, die asynchrone Funktion i warten müssen, um zu lösen ist, wie folgt:Verwendung warten innen Array.map Funktion
static async sendEmail (from, to, subject, text) {
return new Promise((resolve, reject) => {
let message = {
from,
to,
subject,
text
};
AMMailing.transporter.sendMail(message, function (err, response) {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
ist der Code der Art, wie ich in dem Array bin iterieren und zu versuchen, zu warten, bis es zu lösen, bevor es wieder iteriert:
static sendEmailInQueue (queue) {
queue.map(async (person, index) => {
console.log('sending email to: ', person.email);
try {
let success = await AMMailing.sendEmail(AMMailing.message.from, person.email, AMMailing.message.subject, AMMailing.message.text);
if (success) {
console.log('email sent to: ', person.email);
}
} catch (err) {
console.log(err);
}
});
}
Mein Problem ist: diese Zeile console.log('sending email to: ', person.email);
wird alle Zeiten ausgeführt und dann die AMMailing.sendEmail() Funktion starten ist es führt zu protokollieren
dies ist die Ausgabe i in der Konsole:
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
sending email to: [email protected]
{ Error: Hostname/IP doesn't match certificate's altnames: "Host: mail.appmasters.io. is not in the cert's altnames: DNS:*.sgcpanel.com, DNS:sgcpanel.com"
Dies ist höchstwahrscheinlich kein Problem mit 'async/await'. Haben Sie Ihren Code mit nur einem Benutzer ausprobiert (ohne Mapping - möglichst einfache Implementierung) und verifiziert, dass er funktioniert? – spicypumpkin
@spicypumpkin ja versuchte es mit einem einzigen Eintrag und es funktioniert wie erwartet, aber mit mehreren es nicht –