2016-09-19 35 views
0

我有一个if子句,用于检查窗口全局对象是否存在cordova,如果是,它将执行一个http请求并返回默认的角度2 http observable。订阅一个函数,它只在if子句中返回observable

如果应用程序在web上下文中,cordova将不存在,因此该函数不应该执行任何操作。

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

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

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

这是代码,并通知我需要改变,使其工作?有没有办法返回可观察?

+0

你用'Observable .from([])''尝试过吗?或者用你的设置,你可以改变返回类型为::Observable .' – micronyks

回答

1

真不明白什么是您的问题,现在.. :)

return Observable.of(null);

return Observable.of(undefined);