最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

nodejs同步功能中的foreach循环

IT培训 admin 14浏览 0评论

nodejs同步功能中的foreach循环

我写了代码

function getDetails (req, res) {
    const dbQuery = `call spGetSLAReportsDetails('${req.body.domainId}', ${req.body.days},'${req.body.type}','${req.body.app}')`
    try {
      connectDatabase(dbQuery).then((rows) => {
        if (!_.isEmpty(rows.dbData) && !_.isEmpty(rows.dbData[0])) {
          const resultList = []
          rows.dbData.pop()
          var bar = new Promise((resolve, reject) => {
            rows.dbData[0].forEach((element, index, array) => {
              let query = `select * from YCW.YWFWIC  ic where ic.witem=${element.witem} and ic.reqno=${element.reqno};`
                connectDatabase(query).then((data) =>{
                  for (var i = 0; i < data.dbData.length; i++) {
                    element[data.dbData[i]["cfield"]] = data.dbData[i]["cvalue"]
                }
                resultList.push(element)
                // console.log(resultList)
                }).catch((err) => {
                  console.log(err)
                })
                if (index === array.length -1) resolve();
            });
        });

        bar.then(() => {
          console.log(resultList);
      });
          res.status(msgCodeJson.ERR004.code).send({
            result: resultList })
        } else {
          console.log("empty array")
          res.status(msgCodeJson.ERR004.code).send({
            message : "No data found"
          })
          // httpResponseHandlerError(res, msgCodeJson.ERR001.code, msgCodeJson.ERR001.msg)
        }
      }).catch(() => {
        httpResponseHandlerError(res, msgCodeJson.ERR002.code, msgCodeJson.ERR002.msg)
      })
    } catch (err) {
      httpResponseHandlerError(res, msgCodeJson.ERR009.code, msgCodeJson.ERR009.msg)
    }
  }

  module.exports.getDetails = getDetails

我希望数据适合结果列表,但所有操作后我都得到空列表。在foreach循环中,我得到了正确的输出。请帮助解决问题。我尝试使用异步foreach循环,但是出现一些语法错误。请帮助

回答如下:

您应该尝试1)for循环插入for foreach2)使用var resultlist=[ ]const]插入的let

nodejs同步功能中的foreach循环

我写了代码

function getDetails (req, res) {
    const dbQuery = `call spGetSLAReportsDetails('${req.body.domainId}', ${req.body.days},'${req.body.type}','${req.body.app}')`
    try {
      connectDatabase(dbQuery).then((rows) => {
        if (!_.isEmpty(rows.dbData) && !_.isEmpty(rows.dbData[0])) {
          const resultList = []
          rows.dbData.pop()
          var bar = new Promise((resolve, reject) => {
            rows.dbData[0].forEach((element, index, array) => {
              let query = `select * from YCW.YWFWIC  ic where ic.witem=${element.witem} and ic.reqno=${element.reqno};`
                connectDatabase(query).then((data) =>{
                  for (var i = 0; i < data.dbData.length; i++) {
                    element[data.dbData[i]["cfield"]] = data.dbData[i]["cvalue"]
                }
                resultList.push(element)
                // console.log(resultList)
                }).catch((err) => {
                  console.log(err)
                })
                if (index === array.length -1) resolve();
            });
        });

        bar.then(() => {
          console.log(resultList);
      });
          res.status(msgCodeJson.ERR004.code).send({
            result: resultList })
        } else {
          console.log("empty array")
          res.status(msgCodeJson.ERR004.code).send({
            message : "No data found"
          })
          // httpResponseHandlerError(res, msgCodeJson.ERR001.code, msgCodeJson.ERR001.msg)
        }
      }).catch(() => {
        httpResponseHandlerError(res, msgCodeJson.ERR002.code, msgCodeJson.ERR002.msg)
      })
    } catch (err) {
      httpResponseHandlerError(res, msgCodeJson.ERR009.code, msgCodeJson.ERR009.msg)
    }
  }

  module.exports.getDetails = getDetails

我希望数据适合结果列表,但所有操作后我都得到空列表。在foreach循环中,我得到了正确的输出。请帮助解决问题。我尝试使用异步foreach循环,但是出现一些语法错误。请帮助

回答如下:

您应该尝试1)for循环插入for foreach2)使用var resultlist=[ ]const]插入的let

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论