订阅一个只在if子句中返回observable的函数

时间:2016-09-19 11:29:31

标签: cordova angular typescript rxjs observable

我有一个if子句检查window全局对象是否存在cordova,如果存在,它将执行http请求并返回默认的angular 2 http observable。

如果应用程序处于Web上下文中,则cordova将不存在,因此该功能不应执行任何操作。

但是为了订阅它,我需要返回一个observable,否则我将得到无法订阅null错误。我目前的解决方案是返回Observable.empty(),

但这样安全还是有更优雅的东西?谢谢!

public init():Observable<Response>{
  if(window.cordova){
    return this.http.get(...)
  } else {
    return Observable.empty()
  }
}

这是代码,并注意我需要更改为使其工作...有没有办法返回Observable?

1 个答案:

答案 0 :(得分:1)

现在还不清楚你的问题是什么.. :))

return Observable.of(null);

return Observable.of(undefined);