@mieweb/wikigdrive
Version:
Google Drive to MarkDown synchronization
37 lines (29 loc) • 755 B
text/typescript
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);
}
});
}