Nodejs: solicitação assíncrona com uma lista de URL

Estou trabalhando em uma esteira rolante. Eu tenho uma lista de URL que precisa ser solicitada. Existem várias centenas de solicitações ao mesmo tempo, se eu não a definir como assíncrona. Receio que isso exploda minha largura de banda ou produza muito acesso à rede do site de destino. O que devo fazer?

Aqui está o que estou fazendo:

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

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

    });
});

Quero que uma solicitação seja chamada depois que uma solicitação for concluída.

questionAnswers(1)

yourAnswerToTheQuestion