Trying node-red-contrib-ts with 'setTimeout'

@benoitadam
I have one more, if I use 'setTimeout,' I get an error and node-red restarts.

let invar = msg.payload
node.warn('1 ' + invar)

let MyTimeOutID = context.get('MyTimeOutID') ?? undefined
node.warn(MyTimeOutID)

const timeout = 2 //60 * 10 // sec

function MyTimeOut() { 
if (MyTimeOutID != undefined) { clearTimeout(MyTimeOutID) } 
MyTimeOutID = setTimeout(function () { 
node.warn('2 ' + MyTimeOutID) 
//clearTimeout(MyTimeOutID) 
msg.payload = invar 
node.send(msg) 
context.set('auto', true) 
}, 1000 * timeout)
}

MyTimeOut()

context.set('MyTimeOutID', MyTimeOutID)
8 Sep 09:25:10 - [info] Starting modified flows
8 Sep 09:25:10 - [info] Started modified flows
8 Sep 09:29:31 - [warn] [typescript:typescript 8] 1 Day
Sep 8 09:29:31 - [warn] [typescript:typescript 8] undefined
8 Sep 09:29:31 - [error] [typescript:typescript 8] Error in function execution: TypeError: Cannot read properties of undefined (reading 'push') 
at setTimeout (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1312) 
at MyTimeOut (eval at E (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1882), <anonymous>:13:23) 
at eval (eval at E (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1882), <anonymous>:21:5) 
at eval (eval at E (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1882), <anonymous>:23:3) 
at E.r.fun (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:2009) 
at r._inputCallback (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:2744)
2025-09-08 09:29:33.147 FATAL Logger Unhandled error detected: Cannot read properties of undefined (reading 'indexOf') 
at Object.clearTimeout (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1382) 
to Timeout.<anonymous> (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1233) 
at listOnTimeout (node:internal/timers:581:17) 
at process.processTimers (node:internal/timers:519:7)
2025-09-08 09:29:33.151 FATAL Logger Unhandled error detected: Cannot read properties of undefined (reading 'indexOf') 
at Object.clearTimeout (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1382) 
at Timeout.<anonymous> (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1233) 
that listOnTimeout (node:internal/timers:581:17) 
at process.processTimers (node:internal/timers:519:7)
[edit] Uncaught Exception:
8 Sep 09:29:33 - [error] TypeError: Cannot read properties of undefined (reading 'indexOf') 
at Object.clearTimeout (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1382) 
at Timeout.<anonymous> (/home/poul/.node-red/node_modules/node-red-contrib-ts/dist/typescript.js:4:1233) 
at listOnTimeout (node:internal/timers:581:17) 
at process.processTimers (node:internal/timers:519:7)
nodered.service: Main process exited, code=exited, status=1/FAILURE
nodered.service: Failed with result 'exit-code'.

The same applies to 'setInterval'.

These may not be implemented yet?

1 Like