function retryGet(url, retries, interval) { return new Promise(function (resolve, reject) { let attempt = 0; const makeRequest = () => { get(url) .then((response) => { resolve(response); }) .catch((err) => { attempt++; if (attempt < retries) { setTimeout(makeRequest, interval); } else { reject(new Error("达到最大重试次数")); } }); }; makeRequest(); }); } function get(url) { return new Promise((resolve, reject) => { const success = Math.random() >= 0.5; if(success) { resolve( "Success" ); } else { reject(new Error("Fail")) } }); } retryGet("https://example.com/api/data",3,2000).then((response) => { console.log(response,'成功'); }).catch((error) =>{ console.err(error.message) })