La funzione 'worker.postMessage()' utilizza l'algoritmo HTML Structured Clone: tentare di trasmettere funzioni, classi complesse, simboli o istanze DOM/Stream non supportate provoca il blocco della trasmissione.
ERR_WORKER_UNSERIALIZABLE
→
Per default Node.js emette questo avviso quando vengono registrati più di 10 listener sullo stesso evento di un'istanza EventEmitter; indica solitamente che un listener viene aggiunto ripetutamente dentro una richiesta HTTP senza mai essere rimosso con '.removeListener()' o '.off()'.
MAX_LISTENERS_EXCEEDED
→
Collegare listener di eventi a oggetti globali ('process.on', 'server.on') all'interno del ciclo di vita di una richiesta HTTP senza scollegarli al termine ('req.on("close", ...)') trattiene le closure e tutti i dati della richiesta nel garbage collector.
EVENTEMITTER_LEAK_UNREMOVED
→
Se chiamati nel contesto del modulo principale, l'ordine di esecuzione tra setTimeout(0) e setImmediate() è non deterministico perché vincolato alle prestazioni del processo; all'interno di una callback I/O (es. fs.readFile), 'setImmediate()' è garantito per essere eseguito sempre prima.
SETIMMEDIATE_VS_SETTIMEOUT
→
L'uso di 'console.log()', promesse o operazioni asincrone all'interno dei callback di 'async_hooks' genera una chiamata ricorsiva infinita perché le funzioni di log attivano a loro volta nuove operazioni asincrone.
ASYNC_HOOKS_RECURSION
→
Invocare 'timer.unref()' comunica all'Event Loop che il timer non deve trattenere il processo attivo se non vi sono altri eventi in coda; se non esistono altri task I/O o socket aperti, Node.js termina immediatamente ignorando il callback futuro.
SETTIMEOUT_UNREF_EXIT
→
Nel modulo nativo 'events', se un'istanza di EventEmitter emette un evento 'error' ('emitter.emit("error", err)') e non esiste alcun listener registrato ('emitter.on("error", ...)') o handler 'errorMonitor', Node.js stampa lo stack trace e termina forzatamente il processo con exit code 1.
UNHANDLED_ERROR_EVENT
→
A partire da Node.js v15, le promesse rifiutate prive di blocco '.catch()' o 'try/catch' non generano più solo un avviso ma terminano forzatamente il processo con exit code 1 per prevenire stati incoerenti.
ERR_UNHANDLED_REJECTION
→