Tengo un objeto en mi ruta Node.js ( result ), y quiero dividirlo en dos objetos separados y devolverlos a ambos. Sin embargo, a veces el segundo objeto se devuelve vacío y para solucionarlo, quiero que la función que lo divide sea asíncrona. Sin embargo, por alguna razón no funciona, ¿qué estoy haciendo mal? La función es separateResult() .
EDITAR: El problema parece estar en mi createResponse(rows ). Mi consulta SQL siempre devuelve 6 filas, pero mi createResponse(rows) a veces devuelve un objeto con 5 pares clave-valor en lugar de 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 }Porque Math.random() a veces genera el mismo resultado. Esto puede ser en cualquier momento 4/10, 3/5... en cualquier momento. Piense en encontrar otra forma de dar nombres clave a su respuesta. Por ejemplo, estás usando un bucle. Así i siempre soy diferente. Puede hacer response[rows[i].user_name+i] . La mejor práctica sería usar la biblioteca uuid