Angular2:返回解析器中的对象

时间:2016-10-26 13:30:39

标签: angular rxjs angular2-routing

我必须检查我的解析器,如果没问题,我会重新分配对象,否则,我会返回一个值为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(结果),我没有得到我的组件中的结果......

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您甚至不需要switchMap,您可以获得结果。请注意,您将result和false都转换为observable,但您可以直接返回它们。

foo

调用者内部的副作用不是最佳做法,您可以在外面处理:

return this.callApi().map(result => (blahblah ? result : false));