Skip to content

joaopa24/Functions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafios

Aqui foram feitos 3 desafios que se consistiam em:

Implementar Funções Assíncronas

Conforme as Especificações a seguir: Implemente uma função que receba como parâmetro um número e, após x milissegundos (dentre um intervalo de 1 a 100 ms. Utilize o setTimeout e as funções floor e random da biblioteca Math), mostre no console o dobro do parâmetro recebido. Em seguida, chame essa função 5 vezes. Ex.:

function printDouble(number){
  setTimeout(
    () => {
      console.log(number * 2)
    }, 
    Math.floor(Math.random() * 100) + 1
  )
}
function printAll(){
  printDouble(5)
  printDouble(10)
  printDouble(22)
  printDouble(1)
  printDouble(89)
}
printAll()

Sem realizar nenhum tratamento, é fácil perceber que a ordem dos valores mostrados no console ao chamar a função printAll() é aleatória e não respeita a ordem de chamada das funções. Portanto, para resolver esse problema, trate o assincronismo do setTimeout utilizando callback, Promise e async/await.

(Dica: no tratamento com Promise, faça o retorno de uma nova Promise e utilize o parâmetro resolve).

Agora, altere um pouco sua função. Serão passados dois parâmetros, o primeiro será o valor a ser dobrado e o segundo o valor a ser somado ao dobro do primeiro. Além disso, em vez de mostrar o resultado no console, retorne-o e o repasse na chamada da função seguinte, por exemplo:

let result;
result = funcao(5, 0); // retorna 10
result = funcao(12, result); // retorna 34
result = funcao(2, result); // retorna 38

Por fim, faça novamente o tratamento desse assincronismo utilizando utilizando callback, Promise e async/await.

DBML

Modelar um banco de dados que represente um sistema de locação de carros. Respeite as seguintes regras:

  • O BD deve possuir no mínimo 6 tabelas:
    • customers - clientes que alugam os carros;
    • agencies - agências que locam os carros;
    • addresses - endereço da agência (rua, bairro, etc);
    • cars - informações específicas do carro (cor, placa, etc);
    • models - informações gerais do carro (marca, modelo, etc);
    • orders - pedidos de locação.
  • Todos as tabelas devem possuir uma primary key;
  • Todas as tabelas precisam possuir, no mínimo, 5 campos (exceto a tabela resultante do relacionamento n:m);
  • O relacionamento entre agência e endereço deve ser 1:1;
  • O relacionamento entre modelo e carro deve ser 1:n;
  • O relacionamento entre cliente e pedido deve ser 1:n;
  • O relacionamento entre agência e pedido deve ser 1:n;
  • O relacionamento entre carro e pedido deve ser n:m (um mesmo pedido pode abranger múltiplos carros e o mesmo carro pode ter sido locado mais de uma vez);

Mascara de Input - Cpf & Porcentagem

  • Número percentual com no mínimo duas casas após a vírgula e no máximo 4 (foi utilizado o NumberFormat da biblioteca Intl);
  • CPF (xxx.xxx.xxx-xx).

💻 Como executar:

  1. Clone o projeto.

    git clone https://github.com/joaopa12/Functions
  2. Instalação

    Instale as dependencias da aplicação.

    npm install
  3. Rode a Aplicação

    npm start

ℹ️ Resultado:

TeladeInicio

About

Callback,Promise,async/await

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published