起因:
前几天遇到个面试题,如何检测,数据加载完毕以后进行数据的监听,我的回答是promise.all()
promise.all() 当发现执行错误时候确实会进行立即返回没有办法进行全局的监听,但是在传入的参数里面如果进行报错的抓取,promise 是不会进行立即返回的,通常我们开发都会封装axios 里面都会有相应错误处理,所以当数据发生错误的时候promise.all()不会立即断开
结果:
但是当时我不知道,我是从业务角度出发的,如果全部成功进行展示,如过请求失败就进行不展示。
如何实现呐
触发时机: 当进入页面进行触发,vue 通过路由守卫,react 路由拦截 react实现路由跳转拦截功能(导航守卫)_react路由拦截-CSDN博客
封装hooks ,或者在路由状态管理器里面进行方法疯转
hooks
或进行统一的数据返回适用于数据不多的页面
放在redux 里面可以对数据进行立即改动,进行页面的预先加载
export const getLogding = (url) => {return axios({method: get,url})
}// 放在 readux
const getALLLoging = (data)=> {let setDate = {state:true,value:{}}if(data && Array.isArray){data.forEach( async(element) => {setDate.value[element.data] = await getLogding(element.url) });}return setDate
}