React redux Redux Saga多次执行产量调整
我正在与我传奇故事中的奇怪行为作斗争 故事很简单。用户单击按钮并发送“generateUserPassword”操作 我的传奇故事采取了这一行动,应该只调用一次密码生成,但会多次调用。我没有后端,所以我得到404HTTP响应,并在saga中捕获一个异常。然后,在handleGenerationFailed()中调度和处理generateUserPasswordFailed操作 下面是http调用:React redux Redux Saga多次执行产量调整,react-redux,axios,redux-saga,React Redux,Axios,Redux Saga,我正在与我传奇故事中的奇怪行为作斗争 故事很简单。用户单击按钮并发送“generateUserPassword”操作 我的传奇故事采取了这一行动,应该只调用一次密码生成,但会多次调用。我没有后端,所以我得到404HTTP响应,并在saga中捕获一个异常。然后,在handleGenerationFailed()中调度和处理generateUserPasswordFailed操作 下面是http调用: export type PasswordGenerateRequest = { email:
export type PasswordGenerateRequest = {
email: string
}
export const callPasswordGenerate = async (request: PasswordGenerateRequest): Promise<unknown> => {
const response = await axios.post(`/passCreate`, request)
return response.data
}
在catch子句中放入console.log时:
function* generateUserPassword(action: GenerateUserPassword): unknown {
const request: PasswordGenerateRequest = { email: action.email }
try {
yield callPasswordGenerate(request)
yield put(userPasswordGenerated())
} catch (e) {
console.log('exception')
yield put(generateUserPasswordFailed())
}
}
它只记录一次:
请帮助我理解这一点。
提前谢谢
export type PasswordGenerateRequest = {
email: string
}
export const callPasswordGenerate = async (request: PasswordGenerateRequest): Promise<unknown> => {
const response = await axios.post(`/passCreate`, request)
return response.data
}
function* generateUserPassword(action: GenerateUserPassword): unknown {
const request: PasswordGenerateRequest = { email: action.email }
console.log('generate user password called')
try {
yield callPasswordGenerate(request)
yield put(userPasswordGenerated())
} catch (e) {
yield put(generateUserPasswordFailed())
}
}
function* generateUserPassword(action: GenerateUserPassword): unknown {
const request: PasswordGenerateRequest = { email: action.email }
try {
yield callPasswordGenerate(request)
yield put(userPasswordGenerated())
} catch (e) {
console.log('exception')
yield put(generateUserPasswordFailed())
}
}