Bilibili-Evolved/utils/common.js
2018-07-16 15:46:53 +08:00

30 lines
660 B
JavaScript

const waitForQuery = settings =>
{
const MaxRetry = settings.maxQueryRetry;
let retry = 0;
const tryQuery = (query, condition, action, failed) =>
{
if (retry >= MaxRetry)
{
if (failed)
{
failed();
}
}
else
{
const result = query();
if (condition(result))
{
action(result);
}
else
{
retry++;
setTimeout(() => tryQuery(query, condition, action, failed), settings.queryInterval);
}
}
};
return tryQuery;
};