Я пытаюсь набрать эту функцию, но у меня проблемы
function createAsyncAction(actionName: ActionNames, functionName: String) {
return function(
...params: any[]
): ActionCreator<ThunkAction<any, any, any, any>> {
return async function(dispatch, getState, client, any) {
dispatch({ type: `${actionName}_REQUESTING`, status: REQUESTING });
try {
let result = null;
if (client[functionName]) {
result = await client[functionName].apply(this, params);
}
dispatch({ type: `${actionName}_SUCCESS`, payload: result });
} catch (e) {
dispatch({ type: `${actionName}_FAILURE`, error: e.message });
}
};
};
}
Я получаю ошибку для типа ActionCreator<ThunkAction<any,any,any,any>>
.
Это ошибка
Type '(dispatch: any, getState: any, client: any, any: any) => Promise<any>' is not assignable to type 'ActionCreator<ThunkAction<any, any, any, any>>'.
Type 'Promise<any>' is not assignable to type 'ThunkAction<any, any, any, any>'.
Type 'Promise<any>' provides no match for the signature '(dispatch: ThunkDispatch<any, any, any>, getState: () => any, extraArgument: any): any'.
Однако я не понимаю, почему происходит эта ошибка, возможно, потому, что я не до конца понимаю, что делает ThunkAction.
Что не так?