Я работаю над проектом с Express как бэкэнд и React как фронт. Я использую response-redux с redux-thunk в приложении React, и мне было интересно, какая разница (с точки зрения времени exe c, et c ..) между использованием функции async / await или обещания. Я знаю, что есть некоторые темы по этому поводу, но я не нашел хорошего ответа, почему я должен использовать один, а не другой. Из моего pov async / await, возможно, более читабельно, но это единственная причина выбрать этот подход? Есть ли существенная разница? Вот оба примера:
ПРИМЕР ASYNC / AWAIT:
export const fetchAllUsers = () => {
return async dispatch => {
try {
fetchTokenFunc();
dispatch({type: FETCH_START});
const response = await axios.get('/users/list');
if (response.data.result) {
dispatch({type: FETCH_SUCCESS});
dispatch({type: FETCH_ALL_USERS, payload: response.data.result});
} else {
dispatch({type: FETCH_ERROR, payload: response.data.error});
}
} catch (error) {
dispatch({type: FETCH_ERROR, payload: error.message});
}
return 'done';
};
};
ПРИМЕР ОБЕЩАНИЯ:
export const fetchAllUsers = () => {
return (dispatch) => {
dispatch({type: FETCH_START});
axiosTokenHeader();
axios.get('/users/list').then(({data}) => {
if (data.result) {
dispatch({type: FETCH_SUCCESS});
dispatch({type: FETCH_ALL_USERS, payload: data.result});
} else {
dispatch({type: FETCH_ERROR, payload: data.error});
}
}).catch((error) => {
dispatch({type: FETCH_ERROR, payload: error.message});
});
};
};