function buscarProduto(nomeProduto) {
   return new Promise((resolve, reject) => { // 1. "Promise" com apenas um 's'
     setTimeout(() => { // 2. "setTimeout" com 't' no início
       const produto = { 
          nome: "Notebook",
          preco: 2500,
          disponivel: true
       };
         
       if (nomeProduto === produto.nome && produto.disponivel) {
           resolve(produto);
       } else { 
           reject("Produto não encontrado ou indisponível");
       } 
     }, 2000); // 4. A vírgula separa a função do tempo no setTimeout
   });
}

buscarProduto("Notebook")
  .then((produto) => {
     console.log("Produto encontrado!");
     console.log("Nome:", produto.nome);  
     console.log("Preço:", produto.preco);
     console.log("Disponível:", produto.disponivel);
  }) 
  .catch((erro) => { // 5. "catch" com apenas um 'c'
     console.log("Erro:", erro);
  });

function rodarContadorAssincrono(limite, callback) {
    let contador = 0;
    console.log("🟢 [INÍCIO] Iniciando contador ASSÍNCRONO...");

    proximoPasso();

    function proximoPasso() {
        setTimeout(() => {
            contador++;
            callback(contador);
            
            if (contador < limite) {
                proximoPasso();
            } else {
                console.log("🏁 [FIM] Contador assíncrono finalizado!");
            }
        }, 2000);
    }
}

function exibirContador(valor) {
    console.log(`⏱️ [ASSÍNCRONO] Contador: ${valor}`);
}

console.log("\n--- TESTE ASSÍNCRONO ---");
rodarContadorAssincrono(3, exibirContador);
console.log("✅ Esta mensagem APARECE IMEDIATAMENTE, enquanto o contador roda no fundo!");

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: