yield和yield put()函数之间的区别

时间:2019-04-23 10:42:29

标签: redux-saga

我在我的Web应用程序中使用redux-saga。

我正在使用yield put和yield函数来调度动作。

yield actioncreatorname(parameters) 
yield put(actioncreatorname(parameter))

请告诉我以上两个声明之间的区别。

1 个答案:

答案 0 :(得分:0)

Redux传奇的主要优势之一是它具有declarative effects(例如put效果)。意味着每个效果都包含一些中间件要解释的信息,并且可以对这些信息进行测试和断言以匹配我们期望发生的事情。

  

这些声明性调用的优点是,我们可以通过遍历Generator并对连续产生的值进行deepEqual测试来测试Saga中的所有逻辑。这是真正的好处,因为您复杂的异步操作不再是黑匣子,而且无论它多么复杂,您都可以详细测试其操作逻辑。

总而言之,您可以直接使用操作,而不用put对其进行命名。但是,您将无法从稍后进行测试的舒适性中受益。