gpt4 book ai didi

reactjs - 顺序调用 redux sagas

转载 作者:行者123 更新时间:2023-12-03 14:28:19 24 4
gpt4 key购买 nike

这里是佐贺菜鸟。我试图找到正确的方法来做到这一点,但无法想出任何解决我的问题的方法。

我有一个传奇,它通过 API 调用来做出决定。根据决定,我可能会执行重定向或分派(dispatch)另一个触发另一个传奇流的操作。

export default function* applicationFlow(action) {
let data = { productInfo: {} };
try {
yield put(appStatusSwitch('busy', 'Processing', 'app-status.text.verifying'));

const res = yield call(api.call, data);

const decision = res.decision ? res.decision.toLowerCase() : null;

yield put(appDecision(decision));

switch (decision) {
case 'question':
yield put (appQuestions (res.questions));
// redirect to questions page
redirectTo ('/question-page');
break;
case 'pass':
case 'fail':
//dispatch an action that does another flow..yield takeLatest(APP_SUBMIT, processApplicationFlow)
yield put (submit ());
break;
default:
redirectTo('/technical-difficulty');
}
}
catch(e) {
redirectTo('/technical-difficulty');
}
finally {
yield put(appStatusSwitch('free'));
}
}

在上面的流程中,如何让 saga 等待 yield put(submit()) 完成,然后此生成器中的流程继续到 finally 阻止?

最佳答案

如果我正确理解您的问题,您可以直接调用 processApplicationFlow saga,而不是执行操作。

您的案例将如下所示:

case 'fail':
yield call(processApplicationFlow)
break

call 将阻塞,直到其他 saga 完成。

希望我的回答对您有帮助。

关于reactjs - 顺序调用 redux sagas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43879242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com