Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在redux传奇中继续之前等待多个操作_Javascript_Redux Saga_Saga_Take_Es6 Generator - Fatal编程技术网

Javascript 在redux传奇中继续之前等待多个操作

Javascript 在redux传奇中继续之前等待多个操作,javascript,redux-saga,saga,take,es6-generator,Javascript,Redux Saga,Saga,Take,Es6 Generator,假设您有一个可以获取项目列表的传奇故事。对于每个获取的项目,您还需要一个伴随对象。 下面的伪代码从API获取一些用户,每个用户都会发出一个新的动作来获取她的化身 函数*fetchUsers(){ 试一试{ const users=yield call(getUsers) 交出全部( map({id}=>id).map(id=>put(fetchUserAvatar(id))) ) 收益put('FETCH\u USER\u SUCCESS') }捕获(e){ 屈服put('FETCH\u USE

假设您有一个可以获取项目列表的传奇故事。对于每个获取的项目,您还需要一个伴随对象。 下面的伪代码从API获取一些用户,每个用户都会发出一个新的动作来获取她的化身

函数*fetchUsers(){
试一试{
const users=yield call(getUsers)
交出全部(
map({id}=>id).map(id=>put(fetchUserAvatar(id)))
)
收益put('FETCH\u USER\u SUCCESS')
}捕获(e){
屈服put('FETCH\u USER\u FAILURE')
}
}
我想发出
FETCH\u USER\u SUCCESS
仅当所有化身都已被获取时,即
fetchUserAvatar
saga发出
FETCH\u USER\u AVATAR\u SUCCESS
FETCH\u USER\u AVATAR\u失败

因此,我实施了以下解决方案:

函数*fetchUsers(){
试一试{
const users=yield call(getUsers)
交出全部(
map({id}=>id).map(id=>put(fetchUserAvatar(id)))
)
for(设i=0;i
我觉得有点难看。是否有任何效果,例如执行
或类似的技术,我可以在继续之前等待发出N个操作?

或者对于上述问题有其他解决方案吗?

我可以为您写一个答案,基本上您需要通过
id
进行比较,以采取正确的行动。您在哪里执行您通过
fetchUserAvatar(id)
执行的
操作?您将数据发送到存储的位置?我会在
FETCH\u USER\u SUCCESS
中思考,但您没有显示任何
有效负载。我们在这里的目标仅仅是获取用户和化身,还是用户是一个被忽视的中间人,我们只关心化身?@LindaPaiste问:你
在哪里采取
通过
获取用户化身(id)
放置的动作?答:假设第二个传奇正在执行
获取用户\u化身\u请求
操作Q:您在哪里将数据发送到商店?我会在
FETCH\u USER\u SUCCESS
中思考,但您没有显示任何有效负载。A:对。假设有效负载在
FETCH\u USER\u SUCCESS
action上发送,我可以为您写一个答案,基本上您需要通过
id
比较
采取正确的操作。您在哪里执行您通过
fetchUserAvatar(id)
执行的
操作?您将数据发送到存储的位置?我会在
FETCH\u USER\u SUCCESS
中思考,但您没有显示任何
有效负载。我们在这里的目标仅仅是获取用户和化身,还是用户是一个被忽视的中间人,我们只关心化身?@LindaPaiste问:你
在哪里采取
通过
获取用户化身(id)
放置的动作?答:假设第二个传奇正在执行
获取用户\u化身\u请求
操作Q:您在哪里将数据发送到商店?我会在
FETCH\u USER\u SUCCESS
中思考,但您没有显示任何有效负载。A:对。假设有效负载在
FETCH\u USER\u SUCCESS
操作上发送