我想要实现长轮询,直到从API获取到特定数据。
例如,假设我们有一个返回进程进度的API。我想要调用该API直到该进程完成。
这个方案可行吗?如果是,如何实现?
我想要实现长轮询,直到从API获取到特定数据。
例如,假设我们有一个返回进程进度的API。我想要调用该API直到该进程完成。
这个方案可行吗?如果是,如何实现?
我们已经为这种情况准备好了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)
}
}
}
)