// Base de dados simulada (lista de tarefas)
let tarefas = ["Estudar JavaScript", "Fazer compras"];
// 1. Função para ADICIONAR tarefa (retorna Promise)
function adicionarTarefa(novaTarefa) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (novaTarefa && novaTarefa.trim() !== "") {
tarefas.push(novaTarefa);
resolve(`Tarefa "${novaTarefa}" adicionada com sucesso!`);
} else {
reject("Erro: A tarefa não pode ser vazia.");
}
}, 1500); // Simula demora de 1.5 segundos
});
}
// 2. Função para REMOVER tarefa (retorna Promise)
function removerTarefa(tarefaParaRemover) {
return new Promise((resolve, reject) => {
setTimeout(() => {
const index = tarefas.indexOf(tarefaParaRemover);
if (index !== -1) {
tarefas.splice(index, 1);
resolve(`Tarefa "${tarefaParaRemover}" removida com sucesso!`);
} else {
reject(`Erro: Tarefa "${tarefaParaRemover}" não encontrada.`);
}
}, 1500); // Simula demora de 1.5 segundos
});
}
// 3. Função principal usando async/await para gerenciar o fluxo
async function gerenciarTarefas() {
try {
console.log("📋 Tarefas iniciais:", tarefas);
// Aguarda a adição terminar antes de continuar
const msgAdicionar = await adicionarTarefa("Ler um livro");
console.log("✅", msgAdicionar);
console.log("📋 Tarefas após adicionar:", tarefas);
// Aguarda a remoção terminar antes de continuar
const msgRemover = await removerTarefa("Fazer compras");
console.log("✅", msgRemover);
console.log("📋 Tarefas após remover:", tarefas);
// Descomente a linha abaixo para testar o erro (catch)
// await removerTarefa("Tarefa Inexistente");
} catch (erro) {
console.error("❌ Ocorreu um erro no gerenciamento:", erro);
}
}
// Executar
gerenciarTarefas();
To embed this project on your website, copy the following code and paste it into your website's HTML: