1. 程式人生 > 其它 >axios.all + axios-retry 重試

axios.all + axios-retry 重試

技術標籤:Vue

axios.all 只要一個請求出現失敗 , 就不會走then.

https://segmentfault.com/q/1010000022011292
在這裡插入圖片描述

使用 axios-retry 來使每個請求確保成功.

const axios      = require('axios');
const axiosRetry = require('axios-retry');

// https://segmentfault.com/q/1010000022011292
// https://stackoverflow.com/questions/56074531/how-to-retry-5xx-requests-using-axios
axiosRetry(axios, { retries : 3, // number of retries retryDelay: (retryCount) => { console.log(`retry attempt: ${retryCount}`); return retryCount * 200; // time interval between retries } /* retryCondition: (error) => { // if retry condition is not specified, by default idempotent requests are retried return error.response.status === 500; }, */
}); function test() { let p1 = new Promise((resolve, reject) => { setTimeout(() => { console.log('success, 1'); resolve(1) }, 1000) }); /* let p2 = new Promise((resolve, reject) => { setTimeout(() => { console.log('fail, 2') reject(2) }, 2000) }) */
let p2 = axios({ method: 'GET', // url : 'https://ar.jingaisheji.com/tour/c8b898dbaa8fb34a' url : 'https://test.local' }); let p3 = new Promise((resolve, reject) => { setTimeout(() => { console.log('success, 3'); resolve(3) }, 3000) }); axios.all([p1, p2, p3]).then( res => { console.log(res); console.log('all done') }, error => { console.log('someone failed') }) } test();