首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比赛,但不要取消其他比赛

比赛,但不要取消其他比赛
EN

Stack Overflow用户
提问于 2018-02-13 18:04:23
回答 1查看 48关注 0票数 1

我试着在两个通道和一个发电机之间比赛。我是这样做的:

代码语言:javascript
复制
const { fetchResult, canCancelChanResult, chanResult } = race({
    fetchResult: fetchApi(....)
    canCancelChanResult: take(canCancelChan),
    chanResult: take(chan)
})

fetchApi是一个生成器,如下所示:

代码语言:javascript
复制
function* fetchApi(....) {

}

当这两个通道中的任何一个完成竞争时,fetchApi将被取消。我不想取消它。race似乎是自动取消的。有没有办法防止这种取消?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-13 23:43:28

你应该能够做到这一点:

代码语言:javascript
复制
const fetchTask = yield fork(fetchApi, ....)
const { fetchResult, canCancelChanResult, chanResult } = yield race({
  fetchResult: join(fetchTask),
  canCancelChanResult: take(canCancelChan),
  chanResult: take(chan),
})

join等待fork完成。当它被取消时,只有join被取消,而不是底层的fork。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48764072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档