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' }))
这样:
- 您的操作仍然可以使用»独立«
- 当数据到达时,您的状态会得到更新
- 您不需要检查现有数据/标志的状态以确保满足所有依赖项
- 您可以轻松地将其扩展到更多依赖项