gpt4 book ai didi

javascript - 如何在 React/Redux 中取消挂起的异步操作

转载 作者:行者123 更新时间:2023-12-04 03:20:35 24 4
gpt4 key购买 nike

考虑以下情况:

当用户导航到页面时,会调度两个异步 Redux 操作以并行获取两组相关数据。如果这些提取中的任何一个失败,组件将检测到它,这将在下一个周期呈现错误组件,进而在挂载时调度 clearState 操作。

然而,另一个 Action 仍然有待解决/拒绝,并且会破坏干净的状态。目标是在调用 clearState 操作创建者时中断此(最好是许多其他)挂起的异步操作。 AFAIK,无论如何,待处理的 promise 都应该解决/响应。

我想到的第一件事是向每个 reducer 引入中断标志,但我不知道如何使用它来使后续的成功/错误操作不影响/返回默认状态。

如何做到这一点,将复杂性保持在最低限度?

最佳答案

我有一个类似的问题,我正在使用 jquery 来发出 ajax 请求和 redux-thunk 中间件。

解决方案是让你的 Action 创建者返回 promise ,这个 promise 将由调度函数返回,然后你就可以中止它。

在我的 action creator 中,我有这样的东西:

function doSomething() {
return (dispatch) => {
return $.ajax(...).done(...).fail(...);
}
}

然后在我的组件中我有:

  componentDidMount(){
this.myPromise = this.props.dispatch(doSomething());
}

somefnct() {
this.myPromise.abort();
}

也看看这个 comment作者:丹·阿布拉莫夫。

关于javascript - 如何在 React/Redux 中取消挂起的异步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38608417/

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