Comments (11)
Ok, i saw where the problem is. Will submit a fix!
from node-cqrs-domain.
good catch
from node-cqrs-domain.
try like this:
function handleCommand(cmd) {
return new Promise((resolve, reject) => {
try {
domain.handle(cmd, err => {
if (err) {
reject(err);
}
resolve();
});
} catch (e) { reject(e); }
});
}
from node-cqrs-domain.
Just a small addition so you won't resolve an already rejected promise:
function handleCommand(cmd) {
return new Promise((resolve, reject) => {
try {
domain.handle(cmd, (err) => {
if (err)
return reject(err);
resolve();
});
} catch (e) { reject(e) }
});
}
note the return statement on the first reject.
from node-cqrs-domain.
right, didn’t see it
from node-cqrs-domain.
Hi @adrai,
thanks for the feedback. I tried the try/catch but even this didn't help.
from node-cqrs-domain.
@bikerp This is rather strange, could you post the stack trace of the error?
from node-cqrs-domain.
Error: Please pass a valid aggregate id!
at DefaultCommandHandler.getNextCommandInQueue (C:\Users\bikerp\projects\test\src\commands\node_modules\cqrs-domain\lib\defaultCommandHandler.js:112:17)
at _handle (C:\Users\bikerp\projects\test\src\commands\node_modules\cqrs-domain\lib\defaultCommandHandler.js:1133:27)
at DefaultCommandHandler.handle (C:\Users\bikerp\projects\test\src\commands\node_modules\cqrs-domain\lib\defaultCommandHandler.js:1163:14)
at CommandDispatcher.dispatch (C:\Users\bikerp\projects\test\src\commands\node_modules\cqrs-domain\lib\commandDispatcher.js:119:29)
at C:\Users\bikerp\projects\test\src\commands\node_modules\cqrs-domain\lib\domain.js:670:30
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)
from node-cqrs-domain.
Fixed in v2.14.73.
from node-cqrs-domain.
@bikerp Could you confirm that solves your issue? So we could close it on our side?
from node-cqrs-domain.
@adrai Good job. It works. Even without the try/catch. Thanks for the quick fix
from node-cqrs-domain.
Related Issues (20)
- Let MongoDB generate the aggregate ID? HOT 6
- Is it possible to replace the t4-validation? HOT 5
- CQRS Question about bulk import HOT 5
- revision guard HOT 6
- [Bug] Precondition aggregate is empty HOT 2
- How to use in AWS Lambda HOT 5
- Can a command fire more than one event? HOT 3
- Access meta in command HOT 2
- How to use domainPath in unit tests HOT 7
- Context and aggregateId HOT 5
- defaultCommandHandler bug, adding "undefined" to array of evtsToDispatch HOT 1
- How to clear/init HOT 2
- Same event name in different contexts HOT 2
- default value command schema HOT 2
- Transaction with two aggregates HOT 1
- How to handle errors thrown from defineCommand / defineEvent handlers? HOT 9
- Unique field validation HOT 7
- rollback aggregate to a given revision HOT 5
- Update deps HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-cqrs-domain.