12345678910111213141516171819202122232425262728293031323334353637 |
- 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)
- })
|