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.5k
1 个回答

看思路没啥问题
不过要我写,可能直接3个 settimeout,246 省事,😃😃😃

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题