Home > Software engineering >  How to make node.js function asynchronous? still returning empty object sometimes
How to make node.js function asynchronous? still returning empty object sometimes

Time:10-05

I have an object in my Node.js route (result), and I want to split that into two separate objects and return them both. However, sometimes the second object is returned empty and to fix that I want to make the function that splits it asynchronous. For some reason its not working though, what am I doing wrong? The function is separateResult().

EDIT: The problem seems to be in my createResponse(rows) function. My SQL query always returns 6 rows but my createResponse(rows) function sometimes returns an object with 5 key-value pairs instead of 6.

function createResponse(rows) {
  var response = {}
  var random = 0
  for (let i = 0; i < 6; i  ) {
    var random = Math.floor(Math.random() * 101)
    response[random] = rows[i].user_name
  }
  return response
}

CodePudding user response:

Because Math.random() sometimes generates same result. This can be any time 4/10, 3/5 ... anytime. Think of finding another way of giving key names to your response. E.G. you are using a loop. So i is always different. You can do response[rows[i].user_name i]. Best practice would be using uuid library

  • Related