使用异步问题节点的相关API调用后未获取数据

时间:2019-05-06 07:18:46

标签: javascript node.js asynchronous promise nodes

我正在调用API以根据该数据获取数据,而我正在调用基于条件的不同API。

我已经承诺也会维护异步代码,但到目前为止还算不上运气。在该块的最后,我希望将每个数据都推入数组中,但我得到的是空白数组。

async (body, nextCall) => {
    var tmpArryOfModuleList = []
        var bodyData = body.data
        var promise = new Promise((resolve, reject) => {
          bodyData.forEach(element => {
            if (element.hasCRUD === '0') {
              var options = {
                method: 'GET',
                url: `${apiURL}/api/fetchAllCharts`,
                headers:
                {
                  Authorization: token
                }
              };

              request(options, function (error, response, dashboardData) {
                if (error) {
                  return nextCall({
                    error: error
                  })
                }
                var parsedDashboardData = JSON.parse(dashboardData)
                for (var i = 0; i < parsedDashboardData['data'].length; i++) {
                  var val = element.name + " - " + parsedDashboardData['data'][i]['name']
                  var randomID = Math.random().toString(36).slice(2)
                  tmpArryOfModuleList.push({ "_id": randomID, "submodule": val })
                }
              });
            } else if (element.hasCRUD == '1') {
              var options = {
                method: 'GET',
                url: `${apiURL}/api/fetchAllActions`,
                headers:
                {
                  Authorization: token
                }
              };

              request(options, function (error, response, crudData) {
                if (error) {
                  return nextCall({
                    error: error
                  })
                }
                var parsedcrudData = JSON.parse(crudData)
                for (var i = 0; i < parsedcrudData['data'].length; i++) {
                  var val = element.name + " - " + parsedcrudData['data'][i]['name']
                  var randomID = Math.random().toString(36).slice(2)
                  tmpArryOfModuleList.push({ "_id": randomID, "submodule": val })
                }
              });
            } else {
              console.log('no data found')
              reject('No Data Found')
            }
          })
          resolve(tmpArryOfModuleList)
        })
        console.log('tmpArryOfModuleList', tmpArryOfModuleList)
      }

我在做什么错?如何在最后一个数组上获得结果?

0 个答案:

没有答案