0

标题可能不是很清楚。我会解释我的问题。

这是我的代码:

mailchimpMarketing = require("@mailchimp/mailchimp_marketing");

mailchimpMarketing.setConfig({
apiKey: "MY API KEY",
server: "MY SERVER",
});

const getEmailMembersFromList = async (listID, offset , count) => {
  const response = await mailchimpMarketing.lists.getListMembersInfo(listID, {offset, count});
    emails = response.members.map(member => {
      return member.email_address
    })
  console.log(emails)
}

getEmailMembersFromList("MY LIST ID", 0, 1000)
getEmailMembersFromList("MY LIST ID", 1000, 58)

它在终端中显示两个电子邮件地址数组。我必须打两个电话,因为有超过 1000 个电子邮件地址(总共 1058 个),最多 1000 个。

现在我想连接这两个数组,也许用.concat()方法,但我不知道在我的情况下该怎么做。

编辑 1

mailchimpMarketing = require("@mailchimp/mailchimp_marketing");

mailchimpMarketing.setConfig({
apiKey: "MY API KEY",
server: "MY SERVER",
});

const getEmailMembersFromList = async (listID, offset , count) => {
  const response = await mailchimpMarketing.lists.getListMembersInfo(listID, {offset, count});
    emails = response.members.map(member => {
      return member.email_address
    })
  //console.log(emails)
  return emails
}

getEmailMembersFromList("MY LIST ID", 0, 1000)
getEmailMembersFromList("MY LIST ID", 1000, 58)
4

2 回答 2

1

试试这个代码:

let result = [];

const getEmailMembersFromList = async (listID, offset, count) => {
  await mailchimpMarketing.lists
    .getListMembersInfo(listID, { offset, count })
    .then((response) => {
      emails = response.members.map((member) => {
        return member.email_address;
      });
      // try using spread operator, hopefully it should work
      result = [...result, ...emails];
    });
};

getEmailMembersFromList("MY LIST ID", 0, 1000);
getEmailMembersFromList("MY LIST ID", 1000, 58);

console.log(result);

于 2020-10-13T15:23:50.170 回答
0

由于async函数总是返回一个承诺,您可以将所有请求添加到一个数组中并使用Promise.all()来获取所有数据。

仅供参考:你没有从你的getEmailMembersFromList函数中返回任何让它工作所必需的东西。

例子:

const firstGroup = getEmailMembersFromList("MY LIST ID", 0, 1000);
const secondGroup = getEmailMembersFromList("MY LIST ID", 1000, 58);

Promise.all([firstGroup, secondGroup]).then((values) => {
  console.log(values);
});
于 2020-10-13T14:49:13.357 回答