首页 > 解决方案 > 将参数传递给生成器函数

问题描述

我正在代码库(redux sagas)中学习生成器函数,我看到传入的参数就像

export function* someGenerator({ x, y = {} }) {

当我运行它时

someGenerator('xyz', 'abc')

与常规函数一样,它显示为未定义

我没有得到 ({}) 部分或如何将参数传递给这样的函数。

事情是我试图在另一个中调用生成器函数

标签: javascript

解决方案


该函数使用默认对象属性。它正在做两件事:

  • x如果具有属性的对象x作为第一个参数提供给函数,则解构该属性。
  • 解构y给定对象的属性。如果参数没有属性y,则将其分配给空对象。

请参阅以下示例:

function someGenerator({ x, y = {} }) {
  console.log(x)
  console.log(y)
}

someGenerator({x:'xyz',y:'abc'})

someGenerator({x:'xyz'}) // 'y' will empty object.


推荐阅读