Javascript 事件以检查当前页面中是否加载了所有流量事件-流量,反应

Javascript 事件以检查当前页面中是否加载了所有流量事件-流量,反应,javascript,reactjs,flux,Javascript,Reactjs,Flux,我需要触发一个事件,以检查当前页面/当前路由中的所有事件加载是否完成 假设 Current route is `/address` 此路由中加载的事件如下所示: LOAD_NAME LOAD_PHONE_NUMBER LOAD_GOOGLE_LOCATION 因此,这里的LOAD\u GOOGLE\u LOCATION需要时间来执行。在所有这些事件加载完成后,我需要触发另一个事件 我正在使用React和Flux如果您正在使用,您可以执行如下操作: const loadName = url =

我需要触发一个事件,以检查当前页面/当前路由中的所有事件加载是否完成

假设

Current route is `/address`
此路由中加载的事件如下所示:

LOAD_NAME
LOAD_PHONE_NUMBER
LOAD_GOOGLE_LOCATION
因此,这里的
LOAD\u GOOGLE\u LOCATION
需要时间来执行。在所有这些事件加载完成后,我需要触发另一个
事件

我正在使用
React
Flux

如果您正在使用,您可以执行如下操作:

const loadName = url => dispatch => fetch(url)
  .then(res => res.json())
  .then(json => {
    dispatch({ type: 'LOAD_NAME', data: json  }
    return json;
  }))


const loadPhoneNumber = url => dispatch => fetch(url)
  .then(res => res.json())
  .then(json => {
    dispatch({ type: 'LOAD_PHONE_NUMBER', data: json  };
    return json;
  }))


const loadGoggleLocation = url => dispatch => fetch(url)
  .then(res => res.json())
  .then(json => {
    dispatch({ type: 'LOAD_GOOGLE_LOCATION', data: json  };
    return json;
   }))

//load one after the other
const loadAll = () => dispatch => 
  loadName(…)
    .then(json => loadPhoneNumber(json.number))
    .then(json => loadGoogleLocation(json.location))
    .then(dispatch({ type: 'ALL_LOAD' }))

//load all in parallel
const loadAll = () => dispatch => Promise.all([
  loadName(…),
  loadPhoneNumber(…),
  loadGoggleLocation(…)
])
  .then(([namejson, numberjson, locationjson]) => 
     dispatch({ type: 'ALL_LOAD' }))
这样:

  • 您的操作仍然可以使用»独立«
  • 当数据到达时,您的状态会得到更新
  • 您不需要检查现有数据/标志的状态以确保满足所有依赖项
  • 您可以轻松地将其扩展到更多依赖项