@@ -40,11 +40,11 @@ export function useSubscription(
4040 async function pollEvents ( ) : Promise < void > {
4141 try {
4242 if ( ! paging [ id ] . lastLedgerStart ) {
43- let latestLedgerState = await server . getLatestLedger ( ) ;
43+ const latestLedgerState = await server . getLatestLedger ( ) ;
4444 paging [ id ] . lastLedgerStart = latestLedgerState . sequence
4545 }
4646
47- let response = await server . getEvents ( {
47+ const response = await server . getEvents ( {
4848 startLedger : ! paging [ id ] . pagingToken
4949 ? paging [ id ] . lastLedgerStart
5050 : undefined ,
@@ -60,34 +60,36 @@ export function useSubscription(
6060 ] ,
6161 limit : 10
6262 } ) ;
63-
63+
6464 paging [ id ] . pagingToken = undefined ;
6565 if ( response . latestLedger ) {
6666 paging [ id ] . lastLedgerStart = response . latestLedger ;
6767 }
68- response . events && response . events . forEach ( event => {
69- try {
70- onEvent ( event )
71- } catch ( error ) {
72- console . error ( "Poll Events: subscription callback had error: " , error ) ;
73- } finally {
74- paging [ id ] . pagingToken = event . pagingToken
75- }
76- } )
68+ if ( response . events ) {
69+ response . events . forEach ( event => {
70+ try {
71+ onEvent ( event )
72+ } catch ( error ) {
73+ console . error ( "Poll Events: subscription callback had error: " , error ) ;
74+ } finally {
75+ paging [ id ] . pagingToken = event . pagingToken
76+ }
77+ } )
78+ }
7779 } catch ( error ) {
7880 console . error ( "Poll Events: error: " , error ) ;
7981 } finally {
8082 if ( ! stop ) {
81- timeoutId = setTimeout ( pollEvents , pollInterval ) ;
83+ timeoutId = setTimeout ( ( ) => void pollEvents ( ) , pollInterval ) ;
8284 }
8385 }
8486 }
8587
86- pollEvents ( ) ;
88+ void pollEvents ( ) ;
8789
8890 return ( ) => {
8991 if ( timeoutId != null ) clearTimeout ( timeoutId )
9092 stop = true
9193 }
92- } , [ contractId , topic , onEvent , id , pollInterval ] )
94+ } , [ contractId , topic , onEvent , id , pollInterval , server ] )
9395}
0 commit comments