0
respostas

return de uma promises do modulo https.get

Como fetch-node utilizado no curso ficou desatualizado, precisei usar o modulo https para fazer as requisiçoes. No código abaixo, eu não estou conseguindo ter o retorno desajdo na função checaStatus, não consigo passar o statusCode de cada requisição para a const request: http-validacao

/* const fetch = 
(...args) => import('node-fetch')
.then(({default: fetch}) => fetch(...args)); */

const https = require('https');
const { url } = require('inspector');


async function checaStatus(arrayURLs) {
    /* promises async await */
    const arrayStatus = await Promise.all(arrayURLs.map(async url => {
        const request = await https.get(url, (res) => {
            console.log("res.statusCode", res.statusCode); //imprime o statusCode certinho!!
        })
        console.log(request);  ///imprime um monte de dados e sem o statusCode
        return request;
    }))
    return arrayStatus;
    }


function geraArrayURLs(arrayLinks) {
    /* loop para cada {chave: valor} */
    /* objeto -> [valor]*/
    /* Object.values(objeto) */

    return arrayLinks.map(objetoLink => Object.values(objetoLink).join());


}

async function validaURLs(arrayLinks) {
    const links =  geraArrayURLs(arrayLinks);
    const statusLinks = await checaStatus(links);
    return statusLinks;
}

module.exports = validaURLs;

O statusCode correto fica apenas dentro do callback da ultima arrow function.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software