问题标签 [redux-observable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
341 浏览

javascript - redux-observable 中的独立链取消?

我是 RxJS 的新手。在我的应用程序中,我需要独立取消延迟操作。这是一个工作示例(延迟为 3 秒)。但是当我选择删除多个项目并取消其中一项时,然后一次全部取消。

史诗代码:

我想我需要传递一个idtotakeUntil运算符,但我不知道该怎么做。

0 投票
1 回答
2565 浏览

redux-observable - 如何在单个 redux observable 史诗中等待/屈服于多个动作?

我有一个 redux Saga,每次调度“WATCHLIST_FETCH_REQUEST”时都会运行三个不同的操作:

这个传奇的流程本质上是同步的。操作 1 必须首先运行才能设置应用的全局加载状态。Action 2 必须在 Action 1 之后和 API 响应返回后运行,以在网络活动完成时移除全局加载状态。

我对 redux-observable 还很陌生,但我一直在挖掘很多东西,试图弄清楚如何将这个传奇转变为史诗。这里的两个目标:

  1. 依次执行操作,一个接一个,而不是并行运行
  2. 在单个史诗中执行这些操作/流程(当 type: 'WATCHLIST_FETCH_REQUEST' 被触发时开始)

你如何使用 redux-observable 来实现这一点?谢谢!

0 投票
0 回答
770 浏览

reactjs - react + redux + redux-observable + 401 错误的全局处理程序?

unauthorised在 redux 和 redux-observable中如何处理的一些新手问题

我有一个应用程序,用户必须经过身份验证才能向 api 发出请求。
如果用户提供的令牌无效,则端点返回 401 http 错误代码。

那么我该如何优雅地处理这个(我正在使用 fetch)?

选项1:

  • 创建某种函数,我将使用该函数将所有 api 调用包装在史诗中,它将 401 响应转换为类似NotLoggedInAction
  • 创建一个reducer来处理NotLoggedInAction和设置用户未登录状态的标志
  • 订阅根组件 (?) 中的状态更改并检查未登录标志
  • 如果未登录标志到达,将用户重定向到登录页面(登录页面是外部应用程序,所以我会使用window.location.href?)

这个选项有点灵活,因为在重定向之前我可以显示一些弹出窗口,比如“嘿,你的会话已过期等”。
但它也不容易出错(我必须始终将错误处理连接到每个调用,并在每个史诗中添加依赖项NotLoggedInAction

选项 2:
- 在 combineEpics 中使用do并注意错误 - 如果 401 到达,只需将用户重定向到登录页面(通过相同的window.location.href

这对我来说看起来更简单,但这更像是一个“黑客”?

我走对了吗?是更好的选择吗?

0 投票
1 回答
226 浏览

angular - ReplaySubject.next(value) 是否违反了 redux store 的不可变状态原则?

我有一个 Angular2 应用程序,它从需要身份验证的源中获取数据,因此应用程序组件的 init 事件会像这样启动 auth 令牌获取:

Redux 正在存储一个 Rxjs5 ReplaySubject,并且这个主题将从 reducer 获取令牌值,如下所示:

这段代码对我有用,但它是否违反了 redux 商店的不可变状态原则?

0 投票
1 回答
424 浏览

reactjs - 使用 redux-observable 史诗通过多个动作来装饰数据

我正在苦苦挣扎redux-observable,试图弄清楚如何用这个流程创建史诗:

  1. 听一个GET_ITEMS_REQUEST动作
  2. 发送 HTTP 请求以获取一些项目
  3. 获取这些项目的 ID 并发送一个GET_ITEM_DETAILS_REQUEST操作,该操作将发送另一个 HTTP 请求以获取这些项目的更多详细信息
  4. 用第二个请求中的细节装饰第一个请求中的项目并发送最终GET_ITEMS_SUCCESS操作,这将更新 redux 状态

从第 3 步到第 4 步是我卡住的地方。我知道如何GET_ITEM_DETAILS_REQUEST使用项目 ID 进行调度,但我不知道如何侦听/订阅GET_ITEM_DETAILS_REQUEST操作以获取项目详细信息响应。

到目前为止,我有以下内容:

0 投票
2 回答
2002 浏览

reactjs - 从其他史诗中调用史诗

首先是这个很棒的图书馆的许多道具!不过,我仍在为一个用例而苦苦挣扎。我想先调用另一个史诗并等到它完成后再继续当前的史诗。假设我有一个用户可以更改内容的表单。在将其他数据加载到表单之前,我想先保存当前的更改。对此有什么想法吗?

0 投票
1 回答
1012 浏览

observable - 流类型检查 action$ observable

是否可以对 observable 进行流式检查?我正在使用 redux-observable 来构建可观察动作的史诗,如果有匹配,它们会运行一些异步代码。史诗的action$论点是可观察的,但 Flow 中似乎没有Observable<>类型。如何正确分配流类型action$

内容action$

在此处输入图像描述

0 投票
2 回答
1736 浏览

javascript - 使用 Redux-Observable 调度延迟的第二个动作,同时保留第一个动作

我正在尝试创建一个将采取行动的史诗,然后调度两个不同的行动,第二个行动延迟两秒。经过一堆尝试,这是我能做的最好的:

不幸的是,似乎:

在我的应用程序加载后立即运行(而不是在事件从父流中下来时)。我注意到了这一点,因为FETCH_SUCCESS在我的应用程序加载后两秒钟,reducer 就收到了这个动作。我什至附上了一个console.log来确认这一点:

“这已经开始”在应用程序启动时记录到控制台。

我怀疑这与 Redux-Observable 如何为您自动订阅有关。

期望的行为是我将:

  1. 单击调度FETCH_WILL_SUCCEED事件的按钮。
  2. 立即,一个FETCH_REQUEST事件被分派。
  3. 两秒后,一个FETCH_SUCCESS事件被分派。
0 投票
1 回答
4523 浏览

redux-observable - 在捕获错误时触发多个操作

我正在努力弄清楚如何catch在我的史诗中的错误处理程序中触发多个操作。

我已经成功地弄清楚了如何使用 thunk-middleware 在我的史诗中成功的异步调用上触发多个操作。见下文:

任何人都可以指导我如何catch返回或触发两个可观察到的动作,这些动作将像我成功的方式一样被调度?

0 投票
2 回答
2925 浏览

javascript - 如何延迟一个史诗直到另一个史诗发出一个值

在 redux-observable 中,我需要在执行 API 请求之前等待,直到另一个史诗完成。使用 combineLatest 不起作用,APP_INITIALIZED 完成后没有任何反应。我也试过 withLatestFrom 但都不起作用。

结合最新定义