Я работаю над почтовым веб-приложением, в котором я пытаюсь заменить определенные ключевые слова (имя, фамилию, адрес электронной почты) фактическими свойствами пользователя. В настоящее время я перебираю список получателей и редактирую содержимое электронной почты, которое будет персонализировано с заменой ключевых слов.
Моя проблема: Цикл forEach перепрыгивает через обещание, использованное до того, как я смогу использовать выражение регулярного выражения для замены ключевых слов. Как я могу приостановить цикл, чтобы все ключевые слова были заменены перед переходом к следующей итерации?
recipientList.forEach(function (recipient) {
let setContent = new Promise((resolve,reject) =>{
personalizedContent = replaceAll(emailContent, '[First Name]', firstName);
personalizedContent = replaceAll(emailContent, '[Last Name]', lastName);
personalizedContent = replaceAll(emailContent, '[Email]', recipient.EmailAddress.Address);
resolve(personalizedContent);
})
setContent.then((personalizedContent)=>{
var message = {
"Message": {
"Subject": subject,
"Body": {
"ContentType": "html",
"Content": personalizedContent
},
"ToRecipients": [recipient],
"Attachments": []
},
"SaveToSentItems": "true"
};
postEmail(accessToken,message);
})
});