在承诺中完成地图之前。所有它在React JS中执行下一行

发布于 2025-02-07 03:36:52 字数 2711 浏览 0 评论 0原文

晚上好,

我只是想创建一个带有多个数据的集合,该数据与其他集合一起嵌套了用来调用其他连接,例如明智的我调用所有连接,

firestore.collection("pods/").where("start_date", "==", dformat)
.where("pod_status", "==", "active").get()
 .then((snap: any) => {
        snap.docs.map((docsnap: any) => {
          let details = docsnap.data();
          let pod_docId = docsnap.id;
          let pod_id = details.pod_id;
          let course_id = details.course_id;
          getDocDetails(course_id, firestore, "courses").then(
            (courseData: any) => {
              let course_data = courseData.data(); let levels = course_data.levels;
              Promise.all(
                levels.map((lev: any) => {
                  let level_id = lev;
                   getDocDetails(level_id, firestore, "levels")
                    .then((level_data) => {
                      let result: any = level_data; let level_details = result.data();
                      let modules = level_details.modules;
                      modules.map((module_id: any) => {
                        getDocDetails(module_id, firestore, "modules")
                          .then((module_data) => {
                            let response: any = module_data; let mod_det = response.data(); let sess = mod_det.sessions;
                            sess.map((sess_id: any) => {
                             sessions_id_list.push(sess_id);
                              logger.info("sessions_id_list", sessions_id_list);
                            });
                          })
                          .catch((err) => {
                            logger.info(
                              "Error while getting the Module details",
                              err
                            );
                          });
                      });

                      logger.info("sessions_id_list 2", sessions_id_list);
                    })
                    .catch((err) => {
                      logger.info("Error while getting the Level details", err);
                    });
                })
              );
              logger.info("sessions_id_list 3", sessions_id_list);
              let obj = {
                  pod_docId: pod_docId,
                  pod_id: pod_id,
                  sessions_id_list: sessions_id_list,
                  status: "created",
                  count: 0,
                  completed: 0,
                };
                addQueue(obj, firestore);
              
            }
          );

        });
      })
      .catch((err: any) => {
        reject(err);
      });

然后在推动会话列表之前在此处收集数据,然后执行打印会话列表3并调用Addqueue函数 我该如何克服这一点,帮助我,感谢Avance

Good Evening All,

Am just trying to create one collection with multiple data, that datas are nested with other collections am trying to call a function to get one id , that id used to call another connection and get some data and id's, that id is used to call other connection like wise i call all connection and gather the data

Here My code

firestore.collection("pods/").where("start_date", "==", dformat)
.where("pod_status", "==", "active").get()
 .then((snap: any) => {
        snap.docs.map((docsnap: any) => {
          let details = docsnap.data();
          let pod_docId = docsnap.id;
          let pod_id = details.pod_id;
          let course_id = details.course_id;
          getDocDetails(course_id, firestore, "courses").then(
            (courseData: any) => {
              let course_data = courseData.data(); let levels = course_data.levels;
              Promise.all(
                levels.map((lev: any) => {
                  let level_id = lev;
                   getDocDetails(level_id, firestore, "levels")
                    .then((level_data) => {
                      let result: any = level_data; let level_details = result.data();
                      let modules = level_details.modules;
                      modules.map((module_id: any) => {
                        getDocDetails(module_id, firestore, "modules")
                          .then((module_data) => {
                            let response: any = module_data; let mod_det = response.data(); let sess = mod_det.sessions;
                            sess.map((sess_id: any) => {
                             sessions_id_list.push(sess_id);
                              logger.info("sessions_id_list", sessions_id_list);
                            });
                          })
                          .catch((err) => {
                            logger.info(
                              "Error while getting the Module details",
                              err
                            );
                          });
                      });

                      logger.info("sessions_id_list 2", sessions_id_list);
                    })
                    .catch((err) => {
                      logger.info("Error while getting the Level details", err);
                    });
                })
              );
              logger.info("sessions_id_list 3", sessions_id_list);
              let obj = {
                  pod_docId: pod_docId,
                  pod_id: pod_id,
                  sessions_id_list: sessions_id_list,
                  status: "created",
                  count: 0,
                  completed: 0,
                };
                addQueue(obj, firestore);
              
            }
          );

        });
      })
      .catch((err: any) => {
        reject(err);
      });

Here before pushing the session list , it execute print session list 3 and call addQueue function. How can i overcome this, Help me guys, Thanks in Avance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文