export const loginSuccess = createAsyncThunk(
"auth/loginSuccess",
async (user: User) => {
const res = await api
.post(
"/auth/loginSuccess",
{ user },
{
withCredentials: true,
}
)
.then((res: any) => {
setAxiosToken(res.data.token);
saveToken(res.data.token);
return { ...res.data.data, token: res.data.token };
});
return res;
}
);
最后有两个return语句,所以我不知道实现的reducer会得到哪个返回值。代码是别人写的,这就是为什么我想理解它。
1条答案
按热度按时间8wigbo561#
第二个return语句将从函数返回。
第一个实际上是从
axios
返回的promise的then
函数返回。在thunk函数中对
res
变量和传递给then
函数的response变量使用相同的名称,这会让人有点困惑。但是你将收到的是在这行代码中生成的对象:
其中
res.data.data
扩展到一个新对象中,并且res.data.token
被赋给该对象的token属性。