当前位置: 首页 > 知识库问答 >
问题:

Angular2 Http请求返回没有映射方法的可观察[重复]

公西季
2023-03-14

我已经用HTTP\u提供者设置了我的应用程序

bootstrap(AppComponent, [
  HTTP_PROVIDERS,
  ROUTER_PROVIDERS,
  provide(LocationStrategy, { useClass: HashLocationStrategy }),
  PostService
]);

我的服务就像

@Injectable()
export class PostService {
  posts = [];

  constructor(http: Http) {
    this.http = http;
  }
}

但是当我打电话的时候

this.http.get('/posts')

它返回一个Observable,它没有map方法,它让我疯狂了好几个小时。我正在使用Babel来传输我的javascript代码。

共有1个答案

仰经武
2023-03-14

新出版的《服务器通信开发指南》(finally)讨论/提到/解释了以下内容:

RxJS库相当大。当我们构建生产应用程序并将其部署到移动设备时,大小很重要。我们应该只包括那些我们实际需要的特性。

因此,Angular在rxjs/观测模块中公开了一个精简版的观测,这个版本几乎缺少所有运算符,包括我们在这里想要使用的运算符,例如map方法...

我们需要增加操作员。我们可以一个接一个地添加每个操作符,直到我们有一个定制的可观察的实现精确地调整到我们的需求。

例如,正如@Langley的上述评论所示:

import 'rxjs/add/operator/map';

或者,如果我们懒惰,我们可以拉入全套运算符:

import 'rxjs/Rx';
 类似资料:
  • 这是我的控制器,它将请求映射到以下url

  • 函数应该从get请求返回一个 在这种情况下,我只能在为真时执行请求,否则我在函数

  • 我已经做javascript有一段时间了。然而,我对Angular 2还比较陌生,所以我对可观测的东西几乎一无所知。当我读到对可观测事物的描述时,它们听起来很像我已经知道的回调。当我问谷歌时,有回调和promise之间的比较,也有promise和可观察之间的比较。然而,我找不到回调和可观察之间的任何比较。 回调和可观察之间有什么区别?

  • 有人能向我解释一下为什么运算符可以接受返回或的函数吗? 官方文件说: FlatMap运算符通过将您指定的函数应用于源可观察对象发出的每个项目来转换可观察对象,其中该函数返回本身发出项目的可观察对象。 为什么它也可以返回数组? 例如,它们都是有效的: 但这不起作用:

  • 这是我的网站。xml 我的servlet上下文。xml 最后是Handler类。这是在com下。比如Spring。控制器。恳求 但是,我们将转到 它返回404错误。 这是我的项目结构

  • 我需要在Nativescript中从web服务获取所有警报。但是地图不起作用。我试过这个函数。在Angular 5中工作正常,但在Nativescript中显示此错误: [ts]类型“Observable”上不存在属性“map”。在这方面。映射((响应:响应)= 我导入这个: