有先后顺序的多重ajax请求

 getUserList() {
            this.secStoreStatus.tableLoad = true;
            appList({ appCode: 'secrecy', pageNum: 1, pageSize: 30 }).then((res) => {
                if (res.code == 200) {
                    const firstElement = res?.rows[0];
                    if (firstElement) {
                        return systemRoleLists({ appId: firstElement?.id, pageNum: 1, pageSize: 200 })
                    } else {
                        return Promise.reject(new Error("保密仓库管理系统数据app数据为空"));
                    }
                } else {
                    return Promise.reject(new Error("获取保密仓库管理系统失败"));
                }
            }).then((res) => {
                if (res?.code == 200) {
                    // 找到角色名为 "保密管理员" 和 "保密邮件管理员" 的角色ID
                    let roleId1 = res?.rows?.find((item) => item.roleKey === "secrecy_scan")?.roleId;
                    let roleId2 = res?.rows?.find((item) => item.roleKey === "secrecy_email")?.roleId;
                    // 如果任意一个角色ID不存在,则拒绝承诺
                    if (!roleId1 || !roleId2) {
                        return Promise.reject(new Error("未找到所有需要的角色ID"));
                    }
                    let item1 = {
                        roleId: roleId1,
                        pageNum: 1,
                        pageSize: 10000,
                    };
                    let item2 = {
                        roleId: roleId2,
                        pageNum: 1,
                        pageSize: 10000,
                    };
                    // 并行调用 allocatedList 接口获取对应角色的用户列表
                    return Promise.all([
                        allocatedList(item1),
                        allocatedList(item2)
                    ]);
                } else {
                    return Promise.reject(new Error("获取角色检查失败"));
                }
            })
                .then(([res1, res2]) => {
                    this.secStoreStatus.tableLoad = false;

                    // 处理 roleId1 对应的用户列表
                    let userStatusList1 = res1?.rows ?? [];
                    this.$store.commit('setStatusUserList1', userStatusList1); // 假设有另一个存储方法或变量
                    // 处理 roleId2 对应的用户列表
                    let userStatusList2 = res2?.rows ?? [];
                    this.$store.commit('setStatusUserList2', userStatusList2); // 假设有另一个存储方法或变量
                })
                .catch((error) => {
                    this.$message({
                        type: "error",
                        message: "获取角色对应的用户失败,请检查数据后重试。",
                    });
                });
        },

  

posted @ 2025-03-07 20:53  龙旋风  阅读(9)  评论(0)    收藏  举报