private async _retry()

in DeviceBridgeE2E/src/utility/publicAPI.ts [194:218]


    private async _retry<T>(fn: () => Promise<T>): Promise<T> {
        // Flat 10 second delay for any 404 error code (application still provisioning).
        let lastErr: any;
        for (let i = 0; i < 10; i += 1) {
            try {
                return await fn();
            } catch (err) {
                lastErr = err;
                if (!err || !err.response) {
                    throw err;
                }

                const response: Response = err.response;
                if (response.statusCode !== 404) {
                    throw err;
                }

                // Retry
            }

            await new Promise(resolve => setTimeout(resolve, 10000));
        }

        return lastErr;
    }