Skip to content
Snippets Groups Projects
Select Git revision
  • 46c6a890f291b69c93d5bf72f25a33c367da5dc3
  • master default protected
  • devel
  • hruska-feature-clients-api
  • malostik-#5066-deduplicate-idea-ids
  • warden-postgresql-port
  • hruska-feature-#6799-filter-keys
  • hruska-feature-5066-duplicateIdeaID
  • warden-client-3.0-beta3
  • warden-server-3.0-beta3
  • warden-client-2.2-final
  • warden-server-2.2-final
  • warden-client-3.0-beta2
  • warden-server-3.0-beta2
  • warden-client-2.2
  • warden-server-2.2-patch3
  • warden-client-3.0-beta1
  • warden-server-3.0-beta1
  • warden-server-2.2-patch1
  • warden-client-3.0-beta0
  • warden-server-3.0-beta0
  • warden-server-2.2
  • warden-server-2.1-patch1
  • warden-client-2.1
  • warden-server-2.1
  • warden-server-2.1-beta6
  • warden-server-2.1-beta5
  • warden-server-2.1-beta4
28 results

getStatus.pl

Blame
  • retry-if.ts 878 B
    /**
     * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
     *
     * @author David Sehnal <david.sehnal@gmail.com>
     */
    
    export async function retryIf<T>(promiseProvider: () => Promise<T>, params: {
        retryThenIf?: (result: T) => boolean,
        retryCatchIf?: (error: any) => boolean,
        retryCount: number
    }) {
        let count = 0;
        while (count <= params.retryCount) {
            try {
                const result = await promiseProvider();
                if (params.retryThenIf && params.retryThenIf(result)) {
                    count++;
                    continue;
                }
                return result;
            } catch (e) {
                if (!params.retryCatchIf || params.retryCatchIf(e)) {
                    count++;
                    continue;
                }
                throw e;
            }
        }
    
        throw new Error('Maximum retry count exceeded.');
    }