Soy bastante nuevo aquí y tengo un problema en mi backend nodejs.
Tengo una lista de objetos que me ayudarán a encontrar un automóvil en la base de datos, por lo que preparo promesas para obtener datos uno por uno y enviarlos dentro de una promesa. Todo para activar las promesas.
la función getCar funciona cada vez con los datos que envié, pero cuando hago la promesa. todo con la matriz, tendrá un error de grupo de conexión. ¿Cuál es el problema?
function requestData (listOfCar) { const promiseList = []; for (let i = 0; i < listOfCar.length; i++) { promiseList.push(getCar(listOfCar[i])); } return Promise.all(promiseList); // crash but sending promises one by one is working } function getCar(carFinder) { // do things and return a query find in sequelize to find a car // and so it return a promise }Las promesas siempre se desencadenan directamente, no esperan a ser desencadenadas dentro de la promesa. Entonces, su problema es que está enviando, supongo, muchas solicitudes dentro de la base de datos y, por lo tanto, el grupo de conexiones ya no las acepta. Para solucionarlo, puede agregar más grupos de conexiones o simplemente puede activar la promesa de un pequeño fragmento de 5 y esperar la promesa.todo
async function requestData (listOfCar) { const carLists = []; for (let i = 0; i < listOfCar.length; i++) { const tmpListOfPromise = []; for (let j = 0; j < 5 && i < listOfCar; j++) { const tmpListOfPromise.push(getCar(listOfCar[i])); i = i + 1; } await Promise.all(tmpListOfPromise).then((response) => { carLists = carLists.concat(response); // this will push every response in the list }); } } function getCar(carFinder) { // do things and return a query find in sequelize to find a car // and so it return a promise }