4
Ich habe einen asynchronen Code, den ich synchron in einem meiner Knoten js Skript ausführen möchte, aber dies wartet nicht auf den Code-Block zu vervollständigen und löst das leere Objekt - DiesePromise wartet nicht auf eine for-Schleife zum Abschluss
new Promise((resolve, reject) => {
if (object.email !== undefined) {
for (let i = 0; i <= object.email.length; i++) {
let emailObject = object.email[i]
if (emailObject !== undefined) {
this.isEmailUnsubscribed(emailObject, options).then(result => {
console.log('>> isEmailUnsubscribed result in send email notification: ' + result)
if (!result) {
emailObjects.push(emailObject.EmailID)
}
})
}
}
console.log('emailObjects')
console.log(emailObjects)
resolve(emailObjects)
}
}).then(emailObjects => {
object.email = emailObjects
console.log('Email Objects from rules.evaluate')
console.log(emailObjects) // At this point my object is always empty.
this.sendEmailToSelectedUsers(object, options)
})
Warum sollte es warten ? Sie "lösen" es sofort und ignorieren alle Versprechen, die in der Schleife entstehen. – Bergi