一个可能的方法是结合Promise和setTimeout来实现一个具有自动重试功能的ping函数。具体步骤如下:
以下是代码示例:
function ping() {
return new Promise(async (resolve, reject) => {
const url = 'https://example.com';
const options = {timeout: 5000};
const retryDelay = 10000;
let success = false;
while (!success) {
try {
await fetch(url, options);
success = true;
resolve();
} catch (e) {
setTimeout(() => {}, retryDelay);
}
}
});
}
setInterval(() => {
ping()
.then(() => {
console.log('Ping successful');
})
.catch(() => {
console.log('Ping failed');
});
}, 60000);