Waits until a condition is true, executing a callback function when the condition is met.
此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.cn-greasyfork.org/scripts/467272/1235249/awaitFor.js
// ==UserScript==
// @name awaitFor
// @namespace http://tampermonkey.net/
// @version 0.3
// @description Waits until a condition is true, executing a callback function when the condition is met.
// @author IgnaV
// @grant none
// ==/UserScript==
const awaitFor = (condition, callback, maxAttempts=null, awaitTime=500, maxAwaitTime=10000, ...params) => {
maxAttempts ||= maxAwaitTime / awaitTime;
let attempts = 0
const intervalId = setInterval(() => {
const result = condition();
attempts++;
if (attempts >= maxAttempts || result) {
clearInterval(intervalId);
}
if (result) {
callback(result, ...params);
}
}, awaitTime);
};