如何返回一个空的可观察对象

Posted

技术标签:

【中文标题】如何返回一个空的可观察对象【英文标题】:how to return an empty observable 【发布时间】:2017-04-19 16:06:01 【问题描述】:

根据这个答案How to return an empty observable in rxjs我已经尝试了所有但它对我不起作用

这是我的代码

post(url):Observalbe<any>
   if(this.holder.nullConnection()) //checking internet connection
      //return empty observalbe
      return Observable.empty() ;
    else
      return this.http.post(this.configurator.restServerBaseUrl+url,data)
      .map((result:Response)=> 
        return result.json()
      )
    

我已经根据堆栈问题尝试了几乎所有答案,您可以在上面看到任何帮助返回一个空的 obserable。

【问题讨论】:

How to return an empty observable in rxjs的可能重复 请阅读我的问题,我已经提到了你的问题,并问了我的问题与你的@murhaf 不同 【参考方案1】:

Observable.of() 应该适用于您的情况:

import Observable from 'rxjs/Observable';
import 'rxjs/add/observable/of';
// or import Observable from 'rxjs/Rx';

return Observable.of();

import EmptyObservable from 'rxjs/EmptyObservable';

return new EmptyObservable();

【讨论】:

我在使用 Visual Studio 时都试过了,我的编辑器在 of() 上显示错误,我们是否必须导入 EmptyObservable 之类的东西 如您所见,我的 else 部分工作正常,只是我正在努力重新运行一个空的 observable 你必须导入 of 运算符 它是说找不到这样的()名称 导入 'rxjs/add/observable/of';【参考方案2】:

在 Angular 2 中,您可以使用以下方法返回空的 observable:

import EmptyObservable from 'rxjs/EmptyObservable';
    return new EmptyObservable();

【讨论】:

对我来说; import EmptyObservable from 'rxjs/observable/EmptyObservable';

以上是关于如何返回一个空的可观察对象的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Python 内置的“all”函数为空的可迭代对象返回 True?

如何创建一个表示其他两个可观察对象完成的可观察对象?

React 如何订阅在另一个组件中声明的可观察对象

如何取消订阅路由解析类中的可观察对象

如何等待多个可观察流解决并一起返回它们

使用jasmine.SpyObj-Angular / Jasmine测试服务属性上的可观察对象