Nodejs: solicitud asíncrona con una lista de URL

Estoy trabajando en un rastreador. Tengo que solicitar una lista de URL. Hay varios cientos de solicitudes al mismo tiempo si no lo configuro para que sea asíncrono. Me temo que explotaría mi ancho de banda o produciría mucho acceso de red al sitio web de destino. ¿Qué tengo que hacer?

Esto es lo que estoy haciendo:

urlList.forEach((url, index) => {

    console.log('Fetching ' + url);
    request(url, function(error, response, body) {
        //do sth for body

    });
});

Quiero que se llame una solicitud después de que se complete una solicitud.

Respuestas a la pregunta(1)

Su respuesta a la pregunta