我有以下传奇故事
export function* login(userName, password) {
yield put({ type: 'LOGIN_DONE', status: 'success', userName: 'test' });
// Redirect to the landing page
yield put(push('/location'));
}
我对以下内容感到困惑
如果我不把收益率放在第一个看跌期权之前,则不会分派动作。这是预期的行为吗?如果是,为什么呢?我以为在最后一个看跌期权旁边有一个收益就足够了,但这似乎只派出了第二个动作
谢谢
答案 0 :(得分:1)
生成器功能可以暂停其过程,直到后续的生成器功能终止。这可以通过使用 yield 关键字来实现:
然后,中间件执行由 效果API。 同时,Generator将被暂停,直到 效果执行终止。 执行时,中间件在生成器传递时调用next(result) 将检索到的结果作为参数。重复此过程,直到 生成器正常终止或抛出一些错误。
因此,在您的情况下,该操作可能会触发另一个“传奇”,这可能需要完成他们的工作才能继续下一个收益。如果您不打算这样做,那么可能会产生副作用,使后续的生成器函数异步运行,并且结果将不符合预期。