Exercício: Encadeado Funções de Callback

Caso você não conheça o conceito do Continuation Passing Style(CPS) ou funcções de callback, recomendo que primeiro veja o artigo Funções de Retorno (callback) para entender melhor o funcionamento do exercício.

Também pode ser interessante tentar resolver primeiro o exercício callback e variaveis antes para ir praticando.

Se você estiver tranquilo com o material acima, então vamos lá. Com base no código a seguir:

<!DOCTYPE html>
<html>

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
    <script>
        //De um valor numerico inteiro a estas variaveis
        const valBase;
        const valBase2;

        function fazerAlgo(num1, num2, func) {
            func(num1++, ++num2);
            console.log(num2);
        }

        fazerAlgo(valBase, valBase2, (novoNum1, novoNum2) => {
            //De um valor a estas variaveis que seja a soma de outras variaveis
            let valX;
            let valY;
            console.log(novoNum1);

            fazerAlgo(valX, valY, (valBase, valBase2) => {
                setTimeout(() => { console.log(novoNum1); }, 1000, valBase);

                fazerAlgo(Math.pow(valBase,2), valBase2, (valFinal1, valFinal2)=>{
                    setTimeout(() => { console.log(valFinal1 - valFinal2); }, 1000, valBase);
                });

                setTimeout(() => { console.log(valBase2); }, 500, valBase);
            });
        });

    </script>
</body>

</html>
  1. Atribua valores as variaveis valBase e valBase2 que sejam dois números positivos e inteiros.
  2. Atribua valores as variaveis valX e valY que sejam a soma de outras 2 variaveis. (exemplo: valX = novoNum1 + novoNum2)
  3. Os valores atribuidos as variaveis tem que gerar a seguinte saida no console(um por linha)
    1. 10
    2. 13
    3. 12
    4. 6
    5. 12
    6. 10
    7. 387

Dicas:

  • Debugue o código, para ter uma ideia melhor do que está acontecendo
  • Procure por momentos em que as primeiras variaveis são impressas

Uma resposta para “Exercício: Encadeado Funções de Callback”

Deixe um comentário