我必须检查我的解析器,如果没问题,我会重新分配对象,否则,我会返回一个值为false的observable。
这是我的代码:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.callApi().subscribe((result) => {
if (blabla === true) {
return Observable.of(result);
}
this.router.navigate([ '/' ]);
return Observable.of(false);
});
}
Observable.of(false)似乎有用,我去了主页,但是使用Observable.of(结果),我没有得到我的组件中的结果......
感谢您的帮助
答案 0 :(得分:1)
您甚至不需要switchMap,您可以获得结果。请注意,您将result和false都转换为observable,但您可以直接返回它们。
foo
调用者内部的副作用不是最佳做法,您可以在外面处理:
return this.callApi().map(result => (blahblah ? result : false));