这是我见过最好的循环的写法
const handleStatusLoop = async () => {
// 0 没有导出记录,10 进行中 20 完成 30 异常
const { data: { status, url } } = await getExportStatus();
if (status === 10) {
clearTimeout(timer);
timer = setTimeout(() => {
handleStatusLoop();
}, 5000);
} else if (status === 20) {
setStatus('default');
Message.success('导出成功,请点击下载数据按钮进行下载');
const formatUrl = url.replace('http://', 'https://');
setDownloadUrl(formatUrl);
} else if (status === 0) { // 按理说正常操作不会触发此种情况
Message.error('没有导出记录,请刷新页面后进行导出');
} else {
Message.error('导出异常');
setStatus('default');
}
};