javascript 每次迭代时添加到对象,而不替换

1aaf6o9v  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(100)

我在函数外部有一个对象,我想在每次迭代中填充它,并在迭代完成后调用该对象,但我只能看到对象中的最后一个元素。如何添加到对象而不是替换?
我的代码:

let myobj = {};
const func1 = async (arg) => {
  let table_id = result.data.internal_id;
  const response = await axios_Func({ graphQL query });
  console.log(`${response.data.name} - ${table_id}`);
  myobj["name"] = response.data.name;
  myobj["id"] = table_id;
  await func2({ query: graphQL_query, table_id });
}

const func2 = async (result, table_id) => {
  let dev = await getAllTables({ query: tables(123) });
  let prod = await getAllTables({ query: tables(321) });
  let prod_id = new Set();
  result.data.data.table.table_fields.forEach((d) => {
    if (d. connector != null && !(d.name in dev))
      prod_id.add(prod[d.name]["id"]);
  });
  prod_id = [...prod_id];
  prod_id.map((x) => createOne({ query: graphQL_query(x) });
  return Promise.all(prod_id.map((x) => func1({ query: graphQL_query(x) }));
});

const callback = () => console.log(myobj);

const execute = async () => {
  await func1()
  callback()
}

myobj返回对象中的最后一个元素,而不是应该填充的5个元素。
我如何让我的对象拥有所有的元素?

4nkexdtk

4nkexdtk1#

你需要一个数组来保存多个对象。

let myarray = [];
const func1 = async (arg) => {
  let table_id = result.data.internal_id;
  const response = await axios_Func({ graphQL query });
  console.log(`${response.data.name} - ${table_id}`);
  const myobj = {};
  myobj["name"] = response.data.name;
  myobj["id"] = table_id;
  myarray.push(myobj);
  await func2({ query: graphQL_query, table_id });
}

相关问题