鲍勃叔叔在他的清洁法典书中说:功能应该做某事或回答一些事情。
所以命令(做某事)一定不能返回一些信息。但是,知道命令是否在没有错误的情况下执行是有用的。
为此,我们可以抛出一个我们在try / catch中捕获的异常。
但是,反应方式(rxjs)似乎有点不同。
如果我们采用此代码示例:
function test(var: number): Observable<void> {
if(var == 2)
return Rx.Observable.throw("error")
return Rx.Observable.of(var)
}
let foo = test(1).catch(err => Rx.Observable.of(err))
foo.subscribe(val => console.log(val))
let foo2 = test(2).catch(err => Rx.Observable.of(err))
foo2.subscribe(val => console.log(val))
foo的控制台日志显示1并且它非常符合逻辑。 foo2的控制台日志显示&#34;错误&#34;这也是它的逻辑。
也许,我没有正确使用throw和.catch?
要使用catch运算符,我必须返回一个Observable,否则我有一个javascript错误(无法读取属性&#39; catch&#39; of undefined)。
这意味着我们总是必须回复一些东西?