UNPKG

@mieweb/wikigdrive

Version:

Google Drive to MarkDown synchronization

37 lines (29 loc) 755 B
const DELAY = 1000; export async function retryAsync(retryCount: number, asyncFunc) { return new Promise((resolve, reject) => { const handleError = (err) => { if (retryCount <= 0) { reject(err); } else { setTimeout(() => { retryAsync(retryCount - 1, asyncFunc) .then(result => resolve(result)) .catch(err => { if (err.isQuotaError) { setTimeout(() => { reject(err); }, 10000); } else { reject(err); } }); }, DELAY); } }; try { asyncFunc(resolve, (err) => handleError(err)); } catch (err) { handleError(err); } }); }