Vue项目页面加载未同步到数据时,执行轮询接口问题?
描述:后台同学调用第三方接口拿到数据给前端渲染页面,问题是后台数据没有及时同步到位。故此要求前端对接口执行轮询。{首次请求数据未同步过来时,执行setInterval 2s一次 3次},这样写有什么问题吗?或是朋友有简洁的代码供学习下。谢谢大佬。
或是对此情况有更好的方案 求指点。
代码如下:
const loadPacketInfo= () => {
return new Promise((resolve, reject) => {
getPacketApi()
.then((result) => {
resolve(result);
})
.catch((err) => {
resolve({});
});
});
};//queryAction 触发操作
const queryAction = () => {
Toast.loading({
message: '加载中...',
duration: 0,
forbidClick: true,
});
loadPacketInfo().then((res) => {
const { data, errno } = res;
if (errno === '0') {
if (data.mixedData && data.mixedData.length === 0) {
let num = 0;
const timer = setInterval(() => {
num++;
if (num > 3) {
Toast.clear();
clearInterval(timer);
return;
}
loadPacketInfo().then((result) => {
const { data } = result;
if (data.mixedData && data.mixedData.length > 0) {
updateWrap(data.mixedData);
Toast.clear();
clearInterval(timer);
}
});
}, 2000);
} else {
if (data.mixedData && data.mixedData.length > 0) {
updateWrap(data.mixedData);
Toast.clear();
}
}
}
});
};
页:
[1]