2
respostas

invocação da função delay no retorno da função retry

Queria confirmar... na auto-invocação da função delay: return delay(milliseconds)(). não precisaria passar um parâmetro ?

ou nós não estamos passando porque não estamos usando o parâmetro no retorno, apenas o delay de milliseconds.

2 respostas

Oi Edi, onde tem essa chamada? Vi na explicação e não encontrei esse uso... Pq realmente precisa passar os parâmetros.

oi Alberto, vlw pela ajuda. aqui no topico 8. da aula 5. 08 - Implementando retry em Promises

a função retry ficou assim:

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

ela está usando a função delay que está no mesmo arquivo:

export const delay = milliseconds => data =>
    new Promise((resolve, reject) =>
        setTimeout(() => resolve(data), milliseconds)
    );

a função delay recebe milliseconds, mas retorna uma função que recebe 'data' como parâmetro.

mas acho que na implementação do retry, não passa parâmetro, porque não tem intenção de usar a função delay, passando o parametro data. apenas fazer o delay.

essa seria minha dúvida.