gpt4 book ai didi

reactjs - Redux 传奇 : What is the difference between using yield call() and async/await?

转载 作者:行者123 更新时间:2023-12-03 13:38:10 26 4
gpt4 key购买 nike

我正在使用 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 调用生成器函数等等,这是正确的吗?还是背后有其他的道理?

谢谢!

最佳答案

“yield”将等待生成器展开到此“yield”迭代。

saga 生成器(worker)的想法是使用效果创建器(put、call 等)生成特殊函数(所谓的“效果”),而不仅仅是做某事。这允许编排函数调用。

另请参阅Redux Saga async/await pattern

关于reactjs - Redux 传奇 : What is the difference between using yield call() and async/await?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56211110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com