【发布时间】:2019-05-19 19:06:35
【问题描述】:
我正在使用 Redux Saga 模板,它使用包含 yield call() 实例的生成器函数。基本上是这样的:
function *a(){
yield call(<some function>);
}
yield takeLatest(SOME_ACTION, a)
我的问题如下:
1) 我是否正确使用的原因
function *a(){
yield call(<some function>());
}
而不是
function a(){
<some function>()
}
是不是第一个,生成器函数会等到yield call 行返回后再继续,而在第二个中,() 将被异步调用?
2) 如果我对 (1) ^^ 的看法是正确的,那么在 a 内调用 some_function 似乎与以下内容相同:
async a() {
await some_function();
}
这对吗?
3) 如果我对 (2) ^^ 的看法是正确的,那么使用生成器函数而不是 async/await 的唯一原因似乎是可以从 yield takeLatest 等调用生成器函数。这是正确的吗?还是背后有什么其他原因?
谢谢!
【问题讨论】:
标签: reactjs react-native redux redux-saga saga