// Banco de dados simulado (Array)
const listaDeTarefas = [];
// 1. Função para ADICIONAR tarefa retornando uma Promise
function adicionarTarefa(tarefa) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (!tarefa) {
reject("Erro: O nome da tarefa não pode estar vazio.");
} else {
listaDeTarefas.push(tarefa);
console.log(`✅ Tarefa "${tarefa}" adicionada com sucesso.`);
resolve();
}
}, 1000); // Simula 1 segundo de espera
});
}
// 2. Função para REMOVER tarefa retornando uma Promise
function removerTarefa(tarefa) {
return new Promise((resolve, reject) => {
setTimeout(() => {
const index = listaDeTarefas.indexOf(tarefa);
if (index === -1) {
reject(`❌ Erro: Tarefa "${tarefa}" não foi encontrada.`);
} else {
listaDeTarefas.splice(index, 1);
console.log(`🗑️ Tarefa "${tarefa}" removida com sucesso.`);
resolve();
}
}, 1200); // Simula 1.2 segundos de espera
});
}
// 3. Função para LISTAR as tarefas
function listarTarefas() {
console.log("\n--- SUAS TAREFAS ATUAIS ---");
if (listaDeTarefas.length === 0) {
console.log("Nenhuma tarefa pendente.");
} else {
listaDeTarefas.forEach((tarefa, index) => {
console.log(`${index + 1}. ${tarefa}`);
});
}
console.log("---------------------------\n");
}
// 4. Função Principal Assíncrona (Gerenciador do Fluxo)
async function sistemaGerenciador() {
try {
console.log("Iniciando o Sistema de Tarefas...\n");
// Adicionando tarefas sequencialmente com await
await adicionarTarefa("Estudar Promises em JS");
await adicionarTarefa("Finalizar Miniprojeto da Aula 41");
await adicionarTarefa("Revisar conteúdo de Async/Await");
// Listando após inserções
listarTarefas();
// Removendo uma tarefa
await removerTarefa("Finalizar Miniprojeto da Aula 41");
// Listando após remoção
listarTarefas();
// Testando o tratamento de erro (descomente a linha abaixo para testar o erro)
// await removerTarefa("Tarefa que não existe");
} catch (erro) {
// Captura qualquer rejeição das Promises acima
console.error("Ocorreu um problema no sistema:", erro);
} finally {
console.log("Sistema encerrado.");
}
}
// Executa o programa
sistemaGerenciador();
To embed this project on your website, copy the following code and paste it into your website's HTML: