首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

redux observable:为什么不能在测试中获得所有动作

Redux Observable 是一个基于 RxJS 的中间件,用于处理异步操作和副作用。它允许开发者以响应式编程的方式处理 Redux 应用中的异步操作。

在测试中,如果无法获得所有动作,可能是由于以下几个原因:

  1. 异步操作未完成:Redux Observable 处理异步操作时,通常会返回一个 Observable 对象。在测试中,如果异步操作尚未完成,那么你可能无法获得所有的动作。你可以使用测试工具来等待异步操作完成,或者使用适当的测试框架提供的异步测试机制。
  2. 测试代码不正确:测试代码可能存在错误,导致无法获得所有的动作。你可以检查测试代码是否正确地触发了相应的动作,并正确处理了异步操作。
  3. 测试环境配置问题:测试环境可能存在配置问题,导致无法获得所有的动作。你可以检查测试环境的配置是否正确,并确保 Redux Observable 中间件正确地添加到 Redux 的中间件链中。

总结起来,如果在测试中无法获得所有动作,可能是由于异步操作未完成、测试代码错误或测试环境配置问题。你可以通过检查这些方面来解决该问题。

关于 Redux Observable 的更多信息,你可以参考腾讯云的相关产品 RxJS 文档:RxJS

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

RxJS福利~~

,总共90+ 翻译了操作符决策树,以帮助快速定位想要用的操作符及了解各个操作符的用途 翻译官方文档未提供入口的进阶内容:如何编写弹珠测试及如何编写属于自己的操作符 部分截图: ?...,但目前来看,主要还是进行操作符的讲解,所以我将此命名为 “学习 RxJS 操作符” 福利四:redux-observable 中文文档 中文文档地址:https://redux-observable-cn.js.org...如果你喜欢并了解 RxJS , 相信 redux-observable 对你来说是 Redux 生态中最完美的解决方案。我知道你明白我在说什么。...最后,再贴一篇 为什么使用 redux-observable 而不是 redux-saga ?...另外所有都是英文的,这个暂时无解,毕竟绝大部分好的原创内容都是外面的,但并不代表以后无解,请留意我们 RxJS 中文社区 后面的各种小动作~ RxJS 中文社区 传送门:https://github.com

2K50

社招前端一面react面试题汇总

传递 props 给 super() 的原因则是便于(在子类)能在 constructor 访问 this.props。为什么直接更新 state 呢 ?...redux-thunk优点:体积⼩:redux-thunk的实现⽅式很简单,只有不到20⾏代码;使⽤简单:redux-thunk没有引⼊像redux-saga或者redux-observable额外的范式...redux-thunk缺陷:样板代码过多:与redux本身⼀样,通常⼀个请求需要⼤量的代码,⽽且很多都是重复性质的;耦合严重:异步操作与redux的action偶合在⼀起,⽅便管理;功能孱弱:有⼀些实际开发中常...,与redux-observable不同,redux-observable虽然也有额外学习成本但是背后是rxjs和⼀整套思想;体积庞⼤:体积略⼤,代码近2000⾏,min版25KB左右;功能过剩:实际上并发控制等功能很难...redux-observable缺陷:学习成本奇⾼:如果你不会rxjs,则需要额外学习两个复杂的库;社区⼀般:redux-observable的下载量只有redux-saga的1/5,社区也不够活跃,在复杂异步流中间件这个层

3K20

MobX

源于应用状态的所有东西,都应该自动得到。...get total() { return this.price * this.amount; } } 如果没有这种类注解语法,那就一点也漂亮了: var OrderLine =...数据和相应操作可以关联在一起,爱怎么组织都行(用class,或者保持Bean + Controller) 在迁移现有项目时,更能突显出不限制state结构的优势,不改变原有的model定义,侵入性很小,只需要添一些注解,就能获得状态管理层带来的好处...把数据和操作关联起来 在合适的地方插入Container 把所有修改state的部分都换成dispatch ……算了,成本极高,建议重构 六.源码简析 mobx 核心部分是Observable,也就是负责完成...@observable装饰动作的部分: export class IObservableFactories { box(value?

1.1K20

这也许也是你成长的模样 -- Mobx

MobX 背后的哲学很简单: 任何源自应用状态的东西都应该自动地获得。 其中包括UI、数据序列化、服务器通讯,等等。...更多请查阅:官方文档 看到一半,浩某随即抄起键盘就开始码例子以便加深印象(因为装饰器只能应用于类所以用类写法、Mobx 版本 4.x): // goodsStore.js // 定义可观测状态以及改变状态的动作...正当浩某码的正香,却突然被这段代码困住: // goodsStore.js // 定义可观测状态以及改变状态的动作 import { action, computed, observable } from...([])) = false, 随即查阅文档发现,原来由于 ES5 的局限性, Mobx 会创建一个类数组对象来代替真正数组进行操作且支持所有原生方法。...Redux 数据是只读的;Mobx 的数据可读可写,并且 action 非必须,可直接改变。 Redux 的维护性比 Mobx 强,这一点主要基于他的思想:清晰的单向数据流。

39820

MobX or Redux?

但是,同一个 componentDidMount 可能也包含很多其它的逻辑,如设置事件监听,而之后需在 componentWillUnmount 清除。...支持订阅 Store 的变更(subscribe(listener)); 4、异步流 由于 Redux 所有对 Store 状态的变更,都应该通过 Action 触发,异步任务(通常都是业务或获取数据任务...)也例外,而为了不将业务或数据相关的任务混入 React 组件,就需要使用其他框架配合管理异步任务流程,如 redux-thunk、redux-saga、redux-promise 5、数据流向 [...import { observable } from "mobx"; class Todo { @observable title = ''; } 2、Computed values 当添加了一个新的...不会跟 Redux 一样写非常多的样板代码。 3、使组件更加颗粒化拆分。 缺点 1、过于自由,MobX 提供的约定及模版代码很少,如果团队不做一些约定,容易导致团队代码风格统一。

52100

高级前端react面试题总结

为什么?对于异步请求,最好放在componentDidMount中去操作,对于同步的状态改变,可以放在componentWillMount,一般用的比较少。...为了添加多余的DOM节点,我们可以使用Fragment标签来包裹所有的元素,Fragment标签不会渲染出任何元素。...redux-observable额外的范式,上⼿简单redux-thunk缺陷:样板代码过多: 与redux本身⼀样,通常⼀个请求需要⼤量的代码,⽽且很多都是重复性质的耦合严重: 异步操作与redux的...个API,学习成本远超redux-thunk,最重要的是你的额外学习成本是只服务于这个库的,与redux-observable不同,redux-observable虽然也有额外学习成本但是背后是rxjs...传递 props 给 super() 的原因则是便于(在子类)能在 constructor 访问 this.props。React的状态是什么?

4K40

干货 | 浅谈React数据流管理

当某个组件的业务逻辑非常复杂时,我们会发现代码越写越多,因为我们只能在组件内部去控制数据流,没办法抽离,Model和View都放在了View层,整个组件显得臃肿不堪,业务逻辑统统堆在一块,难以维护。...那这也是为什么我们需要使用那些第三方数据流管理工具的原因,接下来我们就来了解一些当前社区比较热门的数据流管理工具。...(非严格模式下); 3)redux模板代码文件多,而mobx非常简洁,就一个文件; 4)redux只有一个store,state orstore难以取舍,而mobx多store,你可以把所有的state...在观察者模式,有两个重要的角色:Observable和Observer,熟悉mobx的同学对这个一定陌生(所以我建议想要学习rxjs的同学,如果对mobx不熟悉,可以先学习一下mobx,然后再学习rxjs...1)纯函数:rxjs数据流动的过程,不会改变已经存在的Observable实例,会返回一个新的Observable,没有任何副作用; 2)强大的操作符:rxjs又被称为lodash forasync

1.8K20

RxJS & React-Observables 硬核入门指南

Redux,无论何时dispatch一个action,它都会运行所有的reducer函数,并返回一个新的状态state。...在Redux,无论何时dispatch一个action,它都会运行所有的reducer函数,并返回一个新的状态state。...在Epic内部,我们可以使用任何RxJS的可观察模式,这就是为什么redux-observable很有用。 例如:我们可以使用.filter操作符创建一个新的中间可观察对象。...在本节,我将比较redux-observableredux-thunk,以展示redux-observable如何在复杂的用例中发挥作用。...但我讨厌redux- tank,我喜欢它,我每天都在使用它! 练习1:调用API 用例:调用API来获取文章的注释。当API调用正在进行时显示加载器,并处理API错误。

6.8K50

第十八篇: 揭秘 Redux 设计思想与工作原理(上)

这些年不管是面试、还是帮读者答疑,我有一个很强烈的感受:很多人对 Redux 的基本操作很熟悉,甚至对它的运作机制也有所了解,但就是不明白为什么要用 Redux,更不清楚 Redux 到底解决了什么问题...Action 人如其名,是“动作”的意思,它是对变化的描述; 3. ...方法可以忽略,它在 redux 内部使用,开发者一般不会直接接触 function observable() { // observable 方法的实现 }...]: observable } } 通过阅读源码会发现,createStore 从外面看只是一个简单的创建动作,但在内部却别有洞天,涵盖了所有 Redux 主流程核心方法的定义。...而 subscribe 和 dispatch 则分别代表了 Redux 独有的“发布-订阅”模式以及主流程中最为关键的分发动作,在下一讲,我们会重点讲解。 7.

63710

各流派 React 状态管理对比和原理实现

编辑切换为居中 添加图片注释,超过 140 字(可选) 从这个流程不难看出,Redux 的核心就是一个 「发布-订阅」 模式。...3.1 三大原则 一般来说,Redux 遵守下面三大原则: 单一数据源 在 Redux 所有的状态都放到一个 store 里面,一个应用中一般只有一个 store。...reducer 需要返回一个新的对象会造成心智负担。如果返回新的对象或者更新的值过于深层,经常会发现我的 action 发送出去了,但为什么组件没有更新呢?...observable 的源码实现在 api/observable.ts 文件,主要是在 createObservable 函数里面。...但是 Redux 不会根据组件使用的状态来定向通知,它会粗暴地通知所有 connect 过的组件。如果在不做浅比较的情况下,整体性能损耗严重。

2.8K61

MobX学习之旅

当应用公共状态的组件在状态发生变化的时候,会自动完成与状态相关的所有事情,例如自动更新View,自动缓存数据,自动通知server等。...例如React的体系,react + redux + react-redux + redux-saga, view层触发一个action,中间件会将这个动作进行dispatch,然后reducer执行相应的更新状态方法...Observable 是被观察着和观察者的概念,你也可以理解为生产者和消费者的概念 @observable/Observable 方法将对象的所有属性重新克隆成新对象,并将克隆对象转变成可观察的。...extendObservable(car, {price: '300w'}) 2、Array:Observable会创建一个类数组对象来代替真正的数组,并且支持所有的原生方法, 但是sort和reverse...().getTime()}`; this.lastName = `Thomas${new Date().getTime()}`; }; 测试

1.4K20

2021前端react面试题汇总

所有对store状态的变更,都应该通过action触发,异步任务(通常都是业务或获取数据任务)也例外,而为了不将业务或数据相关的任务混入React组件,就需要使用其他框架配合管理异步任务流程,如redux-thunk...)和动作(action) Derivation(衍生)∶ 从应用状态中派生而出,且没有任何其他影响的数据 对比总结: redux将数据保存在单一的store,mobx将数据保存在分散的多个store...redux使用plain object保存数据,需要手动处理变化后的操作;mobx适用observable保存数据,数据变化后自动处理响应的操作 redux使用不可变状态,这意味着状态是只读的,不能直接去修改它...redux applyMiddleware Api 源码每个middleware 接受2个参数, Store 的getState 函数和dispatch 函数,分别获得store和action,最终返回一个函数...在非受控组件,可以使用一个ref来从DOM获得表单值。而不是为每个状态更新编写一个事件处理程序。

1.9K20

2021前端react面试题汇总

所有对store状态的变更,都应该通过action触发,异步任务(通常都是业务或获取数据任务)也例外,而为了不将业务或数据相关的任务混入React组件,就需要使用其他框架配合管理异步任务流程,如redux-thunk...)和动作(action) Derivation(衍生)∶ 从应用状态中派生而出,且没有任何其他影响的数据 对比总结: redux将数据保存在单一的store,mobx将数据保存在分散的多个store...redux使用plain object保存数据,需要手动处理变化后的操作;mobx适用observable保存数据,数据变化后自动处理响应的操作 redux使用不可变状态,这意味着状态是只读的,不能直接去修改它...redux applyMiddleware Api 源码每个middleware 接受2个参数, Store 的getState 函数和dispatch 函数,分别获得store和action,最终返回一个函数...在非受控组件,可以使用一个ref来从DOM获得表单值。而不是为每个状态更新编写一个事件处理程序。

2.3K00

2022前端社招React面试题 附答案

所有对store状态的变更,都应该通过action触发,异步任务(通常都是业务或获取数据任务)也例外,而为了不将业务或数据相关的任务混入React组件,就需要使用其他框架配合管理异步任务流程,如redux-thunk...)和动作(action) Derivation(衍生)∶ 从应用状态中派生而出,且没有任何其他影响的数据 对比总结: redux将数据保存在单一的store,mobx将数据保存在分散的多个store...redux使用plain object保存数据,需要手动处理变化后的操作;mobx适用observable保存数据,数据变化后自动处理响应的操作 redux使用不可变状态,这意味着状态是只读的,不能直接去修改它...redux applyMiddleware Api 源码每个middleware 接受2个参数, Store 的getState 函数和dispatch 函数,分别获得store和action,最终返回一个函数...在非受控组件,可以使用一个ref来从DOM获得表单值。而不是为每个状态更新编写一个事件处理程序。

1.7K40

2022社招React面试题 附答案

需要注意的是:hook只能在组件顶层使用,不可在分支语句中使用。...Redux 异步的请求怎么处理 可以在 componentDidmount 中直接进⾏请求⽆须借助redux。...或者redux-observable额外的范式,上⼿简单 redux-thunk缺陷: 样板代码过多: 与redux本身⼀样,通常⼀个请求需要⼤量的代码,⽽且很多都是重复性质的 耦合严重: 异步操作与redux...易测试,提供了各种case的测试⽅案,包括mock task,分⽀覆盖等等 redux-saga缺陷: 额外的学习成本: redux-saga不仅在使⽤难以理解的 generator function...,⽽且有数⼗个API,学习成本远超redux-thunk,最重要的是你的额外学习成本是只服务于这个库的,与redux-observable不同,redux-observable虽然也有额外学习成本但是背后是

2K50

2021高频前端面试题汇总之React篇

需要注意的是:hook只能在组件顶层使用,不可在分支语句中使用。...Redux 异步的请求怎么处理 可以在 componentDidmount 中直接进⾏请求⽆须借助redux。...或者redux-observable额外的范式,上⼿简单 redux-thunk缺陷: 样板代码过多: 与redux本身⼀样,通常⼀个请求需要⼤量的代码,⽽且很多都是重复性质的 耦合严重: 异步操作与redux...易测试,提供了各种case的测试⽅案,包括mock task,分⽀覆盖等等 redux-saga缺陷: 额外的学习成本: redux-saga不仅在使⽤难以理解的 generator function...,⽽且有数⼗个API,学习成本远超redux-thunk,最重要的是你的额外学习成本是只服务于这个库的,与redux-observable不同,redux-observable虽然也有额外学习成本但是背后是

2K00

高频React面试题及详解

componentWillMount 里获取数据,fetch data会执行两次,一次在服务端一次在客户端,这造成了多余的请求,其次,在React 16进行React Fiber重写后,componentWillMount可能在一次渲染多次调用...切换到异步模式: 异步渲染模式就是阻塞当前线程,继续跑。在视频里可以看到所有的输入,表上都会是原谅色的。...两者对比: redux将数据保存在单一的store,mobx将数据保存在分散的多个store redux使用plain object保存数据,需要手动处理变化后的操作;mobx适用observable...,开发者无须封装或者简单封装即可使用 灵活: redux-saga可以将多个Saga可以串行/并行组合起来,形成一个非常实用的异步flow 易测试,提供了各种case的测试方案,包括mock task,...背靠rxjs: 由于有rxjs的加持,如果你已经学习了rxjs,redux-observable的学习成本并不高,而且随着rxjs的升级redux-observable也会变得更强大 redux-observable

2.4K40
领券