Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro na arrow funticon, quando colocado em Bloco

Por que não posso colocar o código abaixo em um bloco {} depois de declarar a função retry, arrow function, pq não posso colocar em bloco ?

//erro

export const retry = ((retries, miliseconds, fn)  =>  {

    fn().catch(err => { 
        console.log(retries); 
        return delay(miliseconds)().then(() => 
               retries > 1 ? retry(retries - 1, miliseconds, fn) : Promise.reject(err)
           );
    });
});

//ok


export const retry = (retries, miliseconds, fn)  =>  
  fn().catch(err => { 
        console.log(retries); 
        return delay(miliseconds)().then(() => 
               retries > 1 ? retry(retries - 1, miliseconds, fn) : Promise.reject(err)
           );
    });
1 resposta
solução!

Boa tarde, José! Como vai?

As chaves que definem o bloco das arrow functions podem ser omitidas quando o bloco é formado por apenas uma instrução. Ou seja, isso:

(param) => { console.log(param); }

É o mesmo que:

(param) => console.log(param)

Só que vc precisa tomar cuidado, pois há mais um caso! Isso:

(param) => { return param; }

É igual a isso:

(param) => param

Ou seja, quando a única instrução do bloco é um return, não só as chaves podem ser omitidas como o próprio return.

Tente fazer o seguinte no seu código pra ver se funciona!

export const retry = (retries, miliseconds, fn)  =>  {

    return fn().catch(err => { 
        console.log(retries); 
        return delay(miliseconds)().then(() => 
            retries > 1 ? retry(retries - 1, miliseconds, fn) : Promise.reject(err)
        );
    });
};

Se isso não resolver o problema, mande tbm o erro que está acontecendo pra que eu possa dar uma olhada melhor!

Grande abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software