React Query: 我可以使用React Query进行轮询直到获取特定数据吗?

11

我想要实现长轮询,直到从API获取到特定数据。

例如,假设我们有一个返回进程进度的API。我想要调用该API直到该进程完成。

这个方案可行吗?如果是,如何实现?

1个回答

17

我们已经为这种情况准备好了PR,一旦我们发货,您可以执行以下操作:

const query = useQuery(
  key,
  fn,
  {
    refetchInterval: (data) => !data || data.progress < 100 ? 5000 : undefined
  }
)

API尚未定稿,实际上我很感激提供一些意见:)


在那之前,您需要使用本地状态来处理此问题:

const [refetchInterval, setRefetchInterval] = React.useState(5000)
const query = useQuery(
  key,
  fn,
  {
    refetchInterval,
    onSuccess: (data) => {
        if (data.progress === 100) {
          setRefetchInterval(false)
        }
    }
  }
)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接