aboutsummaryrefslogtreecommitdiff
path: root/lib/results.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/results.js')
-rw-r--r--lib/results.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/results.js b/lib/results.js
index c12d194..55efd25 100644
--- a/lib/results.js
+++ b/lib/results.js
@@ -15,15 +15,15 @@ Result.prototype.map = function(func) {
};
Result.prototype.flatMapThen = function(func) {
- var messages = this.messages;
+ var that = this;
return func(this.value).then(function(otherResult) {
- return new Result(otherResult.value, messages.concat(otherResult.messages));
+ return new Result(otherResult.value, combineMessages([that, otherResult]));
});
};
Result.combine = function(results) {
var values = _.flatten(_.pluck(results, "value"));
- var messages = _.flatten(_.pluck(results, "messages"), true);
+ var messages = combineMessages(results);
return new Result(values, messages);
};
@@ -33,3 +33,7 @@ function warning(message) {
message: message
};
}
+
+function combineMessages(results) {
+ return _.flatten(_.pluck(results, "messages"), true);
+}