显然设计多级嵌套操作并对其进行批处理

时间:2015-12-04 15:57:41

标签: reactjs redux redux-thunk

我的应用程序片段的设置是这样的:

设备从一个或多个dataSource获取其数据。用户与一个或多个设备交互。现在,dataSources提供实时数据,每个设备定期获取然后显示。所以结构可以显示为:

ScanFilter filter = new ScanFilter.Builder().setDeviceAddress(deviceMacAddress).build();
filters.add(filter);

请注意,数据源可能会重叠。所以它是一个两层重叠的设计。

目前,操作设置如下(代码在语法上不是100% - 只是一个设计问题):

User <----->  (Appliance1, Appliance2) <------> ((DataSource1, DataSource2), (DataSource1, DataSource3, DataSource4))

那么,这是一个体面的设计吗?我强烈地觉得我错过了一些功能。考虑到场景,动作的嵌套是最好的方法吗?可以在这里进行任何其他改进吗?

更新: 我在这里面临的一个问题是在ComponentContainer { ... componentDidMount() { this.setInterval(() => { this.props.appliances.forEach(appliance => dispatch(fetchApplianceRealtime(appliance)) }, 4000)) } } // in src/actions/appliance.js fetchApplianceRealtime(appliance) { return (dispatch, getState) => { fetchApplianceRealtimeInit(appliance) // I may want to toggle a flag here const promises = appliance.dataSources.map(ds => return dispatch(fetchDataSourceRealtime(ds))) Promise .all(promises) .then(() => { dispatch(fetchApplianceRealtimeDone(appliance)) }) .catch(() => { dispatch(fetchApplianceRealtimeFail(appliance)) }) } } // in src/actions/data-source.js fetchDataSourceRealtime(ds) { return (dispatch, getState) => { // No need for Init() action as data sources dont need their own fetching flag or something. return fetch(...) .then(resp => { // normalize return dispatch(fetchDataSourceRealtimeDone(ds, entities) }) .catch(error => { return dispatch(fetchDataSourceRealtimeFail(ds, error) }) } } 中的一个或多个fetchDataSourceRealtime次调用中传播提取错误。

现在我有一种感觉,我只是从错误的角度看待这个问题。

0 个答案:

没有答案