鉴于Observable中的Stream,我想验证/检查每个项目。如果一个被破坏,我想通过Observable.throw抛出一个错误,因此打破了所有进一步的处理。
我笨重的解决方案是
import * as Rx from 'rxjs'
inputStream.mergeMap(item => (isValid(item))
? Rx.Observable.of(item)
: Rx.Observable.throw(new Error("not valid"))
)
这看起来很难看,因为它构造了一堆不必要的Observables。
有没有更好的方法来检查Observable中的项目?
答案 0 :(得分:2)
您可以使用普通map
并在其中抛出异常:
inputStream.map(item => {
if (isValid(item)) {
return item;
}
throw new Error("not valid");
})
答案 1 :(得分:0)