// sem promise...
const http = require('http');
const { reject } = require('lodash');
const getTurma = (letra, callback) => {
const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
return new Promise((resolve, reject) =>{
http.get(url, res =>{
let resultado = ''
res.on('data', dados => {
resultado += dados
})
res.on('end', () => {
try{
resolve(JSON.parse(resultado))
}catch(e){
console.log('Erro ao acessar !');
reject(e)
}
})
})
})
}
//dispara paralelamente
let nomes = []
getTurma('A').then(alunos => {
nomes = nomes.concat(alunos.map(a => `A: ${a.nome}`))
getTurma('B').then(alunos => {
nomes = nomes.concat(alunos.map(a => `B: ${a.nome}`))
getTurma('C').then(alunos => {
nomes = nomes.concat(alunos.map(a => `C: ${a.nome}`))
console.log(nomes)
})
})
})
//todos os elementos em 1 único array
console.log();
Promise.all([getTurma('A'), getTurma('B'), getTurma('C')])
.then(turmas => [].concat(...turmas))
.then(x => console.log(x))
console.log();
Promise.all([getTurma('A'), getTurma('B'), getTurma('C')])
.then(turmas => [].concat(...turmas))
.then(turmas => alunos.map(aluno => aluno.nome))
.then(nomes => console.log(nomes))
.catch(e => console.log(e.message))
//Mensagem de erro caso o arquivo não exista
//getTurma('D'.catch(e => console.log(e.message)))
Nenhum comentário:
Postar um comentário