You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TypeError: Cannot read properties of undefined (reading 'then')
at /home/zotcha/Documents/dev/workspace/contrib/opossum/lib/circuit.js:686:27
at new Promise (<anonymous>)
at CircuitBreaker.call (/home/zotcha/Documents/dev/workspace/contrib/opossum/lib/circuit.js:653:12)
at CircuitBreaker.fire (/home/zotcha/Documents/dev/workspace/contrib/opossum/lib/circuit.js:564:17)
at /home/zotcha/Documents/dev/workspace/contrib/opossum/test.js:21:19
at Object.<anonymous> (/home/zotcha/Documents/dev/workspace/contrib/opossum/test.js:25:3)
at Module._compile (node:internal/modules/cjs/loader:1364:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
at Module.load (node:internal/modules/cjs/loader:1203:32)
at Module._load (node:internal/modules/cjs/loader:1019:12)
The problem
Opossum is a Node.js circuit breaker that executes asynchronous functions and monitors their execution status. When it happens that the function provided to Opossum does not meet the conditions of an asynchronous function or that the execution result cannot be obtained, this type of error occurs. To fix this, we can check if the result of executing the asynchronous method exists.
The fix
Simple fix would be to check if the result of the call of the provided action is not undefined:
constresult=this.action.apply(context,args);if(!result)thrownewTypeError("The action provided can not be resolved.");// The fixconstpromise=typeofresult.then==="function"
? result
: Promise.resolve(result);
The text was updated successfully, but these errors were encountered:
This is not me. Anyone would pass by inattention this kind of action. I thought this would be more appropriate to report this way than just leaving an error uncaught.
Node.js Version:
v18.20.4
Operating System:
Debian 5.10.226-1 (2024-10-03) x86_64 GNU/Linux
Steps to Produce Error:
When provided a function that does not return a promise to the circuit breaker:
Instead of a valid asynchronous function:
Result:
The problem
Opossum is a Node.js circuit breaker that executes asynchronous functions and monitors their execution status. When it happens that the function provided to Opossum does not meet the conditions of an asynchronous function or that the execution result cannot be obtained, this type of error occurs. To fix this, we can check if the result of executing the asynchronous method exists.
The fix
Simple fix would be to check if the result of the call of the provided action is not
undefined
:The text was updated successfully, but these errors were encountered: