Boa Tarde e Feliz Natal,
Fazendo testes aqui, queria ser capaz de logar tudo que estou fazendo, e caso algum item desse erro, queria pegar isso no catch "global" e avisar que foi processado, porém com alguns items com erro. Abaixo tento esboçar a tentativa.
O Problema é que com o erro que solto dentro do trataItem não consigo pegar no catch global. É possível fazer isso que estou querendo?
Meio que o map devolver a promise que está em cada item dele.
Obrigado.
let controller = new TesteController();
controller.testeController()
.then((items: Array<number>) => {
console.log('--Iniciando leitura dos itens--');
items.map(item => controller.trataItem(item));
})
.then(() => {
console.log('--Leitura dos itens finalizada--');
})
.catch((err) => {
console.log('--Leitura com falhas--');
console.log(err.message);
})
export class TesteController {
constructor() {
}
public testeController(){
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(new Array<number>(1,2,3,4,5,6))
}, 2000);
});
}
public trataItem(item:number) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (item === 5) {
reject(new Error('iiii'))
} else {
console.log(item);
}
resolve();
}, 300);
});
}
}