Saya memiliki 3 panggilan async/menunggu yang bergantung satu sama lain, mencoba mencari cara untuk menyambungkannya. Kode tangan seperti inilah tampilannya

// list of organizations
const { orgs } = await organizations();

// list of members belonging to single organization
const { members } = await organization_members(orgs[0]['id']);

// roles belonging to a user in an organization
const { roles } = await organization_member_roles(orgs[0]['id'], members[0]['user_id'])

Mencoba mencari cara untuk memetakan melalui ini untuk mendapatkan daftar semua organisasi, masing-masing dengan anggotanya dan setiap anggota dengan perannya.

Sejauh ini, inilah yang saya dapatkan:

  const get_members = async (org) => {
    const { members } = await organization_members(org.id)
    return members
  }

(async () => {
  const members = await Promise.all(orgs.map(org => get_members(org)))
  console.log(members)
})();
0
Kingsley Ijomah 13 Mei 2021, 02:51

1 menjawab

Jawaban Terbaik

Kedengarannya seperti yang Anda cari

async function orgsWithMembersWithRoles() {
    const { orgs } = await organizations();
    return Promise.all(orgs.map(async (org) => {
        const { members } = await organization_members(org.id);
    
        return {
            org,
            members: await Promise.all(members.map(async (member) => {
                const { roles } = await organization_member_roles(org.id, member.user_id)
                return {
                    member,
                    roles,
                };
            })),
        };
    }));
}
1
Bergi 13 Mei 2021, 03:39