Closed
Description
/**
* @RelayResolver Query.liveSubUnsubTest: Int
* @live
*/
export function liveSubUnsubTest(): LiveState<number> {
return {
read() {
console.log("liveSubUnsubTest", "read")
return Date.now()
},
subscribe(didChange) {
console.log("liveSubUnsubTest", "subscribe")
const id = setInterval(() => {
console.log("liveSubUnsubTest", "tick")
didChange()
}, 1234)
return function unsubscribe() {
console.log("liveSubUnsubTest", "unsubscribe")
clearInterval(id)
}
},
}
}
function LiveSubUnsubTestDemo() {
const data = useClientQuery<LiveState__LiveSubUnsubTestDemo__Query>(
graphql`
query LiveState__LiveSubUnsubTestDemo__Query {
liveSubUnsubTest
}
`,
{},
)
if (!data.liveSubUnsubTest) {
return <Text className="text-white">MIA</Text>
}
return (
<>
<Text className="text-white">
{new Date(data.liveSubUnsubTest).toLocaleString()}
</Text>
</>
)
}
after unmounting LiveSubUnsubTestDemo
, I'm still getting the subscription ticks forever
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
LOG liveSubUnsubTest tick
console.log("liveSubUnsubTest", "unsubscribe")
is never called
Metadata
Metadata
Assignees
Labels
No labels