Ejecutando promesas en conjunto con Promise.all las rompe

Tengo una matriz de ID de usuario que utilizo en getOrdersByUserId () para obtener los pedidos realizados por estos usuarios durante un mes específico:

function getOrdersByUserId(userId, month = 4) {
    const apiService = new ApiService();

    return apiService.getOrdersList(`?OrderingUser=${userId}`)
        .then(orders => {
            const monthOrders = orders.filter(order => new Date(order.FromTime)
            .getMonth() === month);

            return monthOrders;
        });
}

Aquí está getOrdersList () en ApiService:

getOrdersList(queryString = '') {
    return httpsRequest.createRequest(this.URL.ordersList + queryString, {}, this.requestHeaders, 'GET')
        .then(result => JSON.parse(result).Records);
}

httpsRequest.createRequest devuelve una promesa que se resuelve con la respuesta de la API (también puedo compartir ese código si es necesario).

Cuando pruebo getOrdersByUserId () con 8 ID de usuario que tengo, obtengo los registros correctos cada vez. Cuando esto se rompe es cuando pongo estas llamadas en una cadena de promesa y las ejecuto con Promise.All (). Escribí el siguiente código con ayuda de esta respuesta:Espere por ForEach con una promesa dentro para terminar

const promises = userIds.map(userId => {
            return getOrdersByUserId(userId, month)
                .then(orders => {
                    return orders;
                });
        });

        Promise.all(promises).then(results => {
            console.log(results);
        }).catch(err => {
           console.log(err);
        });

Probar con los 8 ID de usuario Me aparece este error cuatro o cinco veces:

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): SyntaxError: Unexpected end of JSON input

Después de una gran cantidad de registros de la consola, parece que este error ocurre cuando httpsRequest.createRequest () da un resultado que es una cadena vacía, en lugar de una respuesta JSON de la API. Entonces, ¿por qué todas estas llamadas con los mismos ID de usuario funcionan individualmente, pero se rompen cuando se ejecutan en una cadena de promesa? ¿Cómo puedo resolver esto

Respuestas a la pregunta(1)

Su respuesta a la pregunta