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

redux-saga:为什么` `yield (func,params)`失败,而` `yield (()=>func(params))`成功?

redux-saga是一个用于管理应用程序副作用(例如异步请求和状态更新)的库。在使用redux-saga时,我们可以使用yield关键字来暂停和恢复副作用的执行。

在这个问答内容中,提到了两种不同的yield语法:yield (func, params)yield (()=>func(params))。它们之间的区别在于函数调用的方式。

  1. yield (func, params)失败的原因: 当使用yield (func, params)语法时,redux-saga会尝试将funcparams作为一个整体进行调用。然而,这种语法在redux-saga中是不支持的,因为它无法正确地解析和执行这种调用方式。因此,使用这种语法会导致失败。
  2. yield (()=>func(params))成功的原因: 当使用yield (()=>func(params))语法时,我们将funcparams封装在一个箭头函数中。这样做的好处是,redux-saga可以正确地解析和执行这个箭头函数,并将其作为一个可执行的副作用进行处理。通过这种方式,我们可以成功地调用func并传递params参数。

综上所述,yield (()=>func(params))语法成功是因为它使用了箭头函数来封装函数调用,而yield (func, params)语法失败是因为redux-saga无法正确解析和执行这种调用方式。

对于redux-saga的更多信息和使用示例,可以参考腾讯云的相关产品和产品介绍链接地址。

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

相关·内容

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

React 高阶组件、Render props、hooks 有什么区别,为什么要不断迭代 这三者是目前react解决代码复用的主要方式: 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧...dispatch 的参数依然是⼀个纯粹的 action (FSA),⽽不是充满 “⿊魔法” thunk function 异常处理: 受益于 generator function 的 saga 实现,代码异常/请求失败...可以将多个Saga可以串⾏/并⾏组合起来,形成⼀个⾮常实⽤的异步flow 易测试,提供了各种case的测试⽅案,包括mock task,分⽀覆盖等等 redux-saga缺陷: 额外的学习成本: redux-saga...reducer yield put(action) }catch(e){ console.log('网络请求失败') } } function* mySaga...(){ // 自动捕获GET_INIT_ITEM类型的action,并执行func yield takeEvery(GET_INIT_ITEM, func) } export default

2K00

Python 自动化操作 Excel

如何区分这两者,很简单unittest作为官方的测试框架,在测试方面更加基础,并且可以再次基础上进行二次开发,同时在用法上格式会更加复杂;pytest框架作为第三方框架,方便的地方就在于使用更加灵活,...unittest风格的测试用例有很好的兼容性,同时在扩展上更加丰富,可通过扩展的插件增加使用的场景,比如一些并发测试等; Pytest 安装 pip安装: pip install pytest 复制代码 测试安装成功...,这里pytest默认会判断yield关键词之前的代码属于预处理,会在测试前执行,yield之后的代码则是属于后处理,将在测试后执行; 作用域 从前面大致了解了固件的作用,抽离出一些重复的工作方便复用,...pytest框架中内置的固件request,并且通过request.param获取参数 import pytest @pytest.fixture(params=[ ('redis', '6379...总结 对于开发来说为什么也要学习自动化测试这一块,很重要的一点就是通过自动化测试节省一些重复工作的时间,同时对于优化代码结构,提高代码覆盖率,以及后续项目重构都是有着很重要的意义,同时理解pytest和

37520

字节前端必会react面试题1

该函数会在replaceState设置成功,且组件重新渲染后调用。总结: setState 是修改其中的部分状态,相当于 Object.assign,只是覆盖,不会减少原来的状态。...为什么 useState 要使用数组不是对象useState 的用法:const [count, setCount] = useState(0)可以看到 useState 返回的是一个数组,那么为什么是返回数组不是返回对象呢...总结:useState 返回的是 array 不是 object 的原因就是为了降低使用的复杂度,返回数组的话可以直接根据顺序解构,返回对象的话要想使用多次就需要定义别名了。...yield put(action) }catch(e){ console.log('网络请求失败') }}function* mySaga(){ // 自动捕获...GET_INIT_ITEM类型的action,并执行func yield takeEvery(GET_INIT_ITEM, func)}export default mySaga发送actioncomponentDidMount

3.2K20

React saga_react获取子组件ref

前言 React的作用View层次的前端框架,自然少不了很多中间件(Redux Middleware)做数据处理, redux-saga就是其中之一,目前这个中间件在网上的资料还是比较少,估计应用的不是很广泛...redux-saga的大体过程如下: action1(plain object)——>redux-saga监听—>执行相应的Effect方法——>返回描述对象—>恢复执行异步和副作用函数—>action2...4.redux-saga实现一个登陆和列表样例 接着我们来实现一个redux-saga样例,存在一个登陆页,登陆成功后,显示列表页,并且,在列表页,可 以点击登出,返回到登陆页。...if(res.status===10000){ yield put({type:'to_login_in'}); //登陆成功后获取首页的活动列表 yield...type:'to_login_out'}); } } 通过请求状态码判断登入是否成功,在登陆成功后,可以通过: yield call(getList) 的方式调用获取活动列表的函数getList。

4.5K30

2022社招React面试题 附答案

React 高阶组件、Render props、hooks 有什么区别,为什么要不断迭代 这三者是目前react解决代码复用的主要方式: 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧...HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性形成的设计模式。具体而言,高阶组件是参数为组件,返回值为新组件的函数。...HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性形成的设计模式。...yield put(action) }catch(e){ console.log('网络请求失败') }}function* mySaga(){ // 自动捕获...GET_INIT_ITEM类型的action,并执行func yield takeEvery(GET_INIT_ITEM, func)}export default mySaga复制代码 发送action

2K50
领券