let isRefreshing = false;
function request(success, time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (success) {
resolve({});
} else {
reject();
}
}, time);
});
}
Promise.all([
request(false, 100)
.then(() => {})
.catch(() => {
if (!isRefreshing) {
isRefreshing = true;
console.log('refresh1:', isRefreshing);
setTimeout(() => {
isRefreshing = false;
}, 100);
}
}),
request(false, 3000)
.then(() => {})
.catch(() => {
if (!isRefreshing) {
isRefreshing = true;
console.log('refresh2:', isRefreshing);
setTimeout(() => {
isRefreshing = false;
}, 3000);
}
}),
]);
可能就是两次 10003