2
我在角度2中使用ng-redux模塊,我不知道執行異步操作的更好方法是什麼。例如,我需要從服務器獲取一些數據。 我將創建一個返回的功能的動作:我可以使用異步操作的創建者redux-thunk中間件做在角度2中執行redux中的異步操作的推薦方式
export function fetchData() {
return function (dispatch) {
dispatch({
type: 'FETCH_DATA_REQUEST'
});
return fetch(url)
.then(response => response.json())
.then(json => dispatch({type: 'FETCH_DATA_SUCCESS', data: json}))
.catch(error => dispatch({type: 'FETCH_DATA_ERROR', error: error
}
}
}
dispatch(fetchData());
或者我可以做在控制器中的HTTP請求和我將手動執行調度方法:
dispatch({
type: 'FETCH_DATA_REQUEST'
});
http(url).then(data => {
dispatch({
type: 'FETCH_DATA_SUCCESS',
data: json
});
}).catch(error => {
dispatch({
type: 'FETCH_DATA_ERROR',
error: error
});
});
推薦哪種方法?我認爲第二種方法比較容易,但爲什麼會出現重複數據刪除中間件。