gpt4 book ai didi

javascript - 如何使 forEach 循环等待正则表达式替换?

转载 作者:行者123 更新时间:2023-12-02 23:28:02 24 4
gpt4 key购买 nike

我正在开发一个电子邮件网络应用程序,我尝试用用户的实际属性替换某些关键字(名字、姓氏、电子邮件)。目前,我正在循环查看收件人列表,并编辑电子邮件内容以通过替换关键字进行个性化。

我的问题: 在我可以使用正则表达式替换关键字之前,forEach 循环会跳过所使用的 promise 。如何暂停循环以确保在进行下一次迭代之前替换所有关键字?

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);
})



});

最佳答案

由于replaceAll不是异步操作,因此您可以删除Promises的使用,并且您的代码将以应有的同步方式工作

 recipientList.forEach(function (recipient) {

let personalizedContent = replaceAll(emailContent, '[First Name]', firstName);
personalizedContent = replaceAll(emailContent, '[Last Name]', lastName);
personalizedContent = replaceAll(emailContent, '[Email]', recipient.EmailAddress.Address);
var message = {
"Message": {
"Subject": subject,
"Body": {
"ContentType": "html",
"Content": personalizedContent
},
"ToRecipients": [recipient],
"Attachments": []
},
"SaveToSentItems": "true"
};
postEmail(accessToken,message);
});

关于javascript - 如何使 forEach 循环等待正则表达式替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56642581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com