有时我想过滤掉流中的某些错误。我想写这样的东西:
stream
.filterError (error) ->
error.type is 'foo'
但是没有filterError
办法。
作为替代方案,我认为我可以使用errors().mapError
将错误映射到值,过滤它们,然后将它们映射回错误。但是,我看不到将流中的值转换为错误的方法。
# Filter only the errors we are interested in
errors = stream.errors()
.mapError (error) ->
error
.filter (error) ->
...
.mapValuesBackIntoErrors() # ?
这个想法是,有问题的流要么带有一个值,要么带有一个错误。两者都代表领域知识;该值表示系统处于正常运行状态,错误表示我们有域错误。但是,有些域错误不是我们想要携带的,所以我希望将它们过滤掉。