0
var datavals = () =>{
var s = [];
var val = {};
  for (let i = 0; i < query.length; i++) {
    for (let j = 0; j < txnName.length; j++) {
      axios.get(`${BASE_URL}/gsa/${query[i]}/${req.params.id}?txnName=${txnName[j]}`).then(res => {
        val.type = txnName[i]
        val.value = res.data;
        s.push(val)
      }).catch(e=>{console.error(e)});    
    }
  }
  return s;
}

unable to access the value of s outside how to get this value of s or are there any alternatives to write? Also as axios is an async operation I'm getting multiple values not sure how handle multiple axios calls in for-each loops

The query array is of length 6 and txnName is an array of length 8. And when I run the axios call I should ideally get 48 responses along with the txnName added to s[] array which should look something like

[
{type : 'a1', value: [object]},
{type : 'a2', value: [object]},
...{type : 'a48', value: [object]}
]

where a1...a48 are based on txName items. When I run my app I'm getting 0 - 500+ items in the array randomly instead of 48 and sometimes app crashes. Also the s[] should be available res.render('template/page', {data: dataVals()})

n00bd3v4ll
  • 23
  • 3
  • can you please add more information? What are you trying to get, what are you getting that's not what you expect? What do you mean you are getting multiple values? If you do `console.log(s)` what do you see inside the `.then` section? – Odinn Apr 24 '20 at 17:50
  • @Odinn added more description – n00bd3v4ll Apr 24 '20 at 22:35

0 Answers0