请给我解释一下离子2(Angular 2)中使用的一些方法



我在这里找到了一些Ionic 2代码:
此代码检索数据并将其解析为JSON。它看起来像这样:

posts: any; 
constructor( public http: Http ) {
this.http.get( 'https://www.reddit.com/r/gifs/new/.json?limit=10' )
.map( res => res.json() )
.subscribe(
data => {
this.posts = data.data.children;
}
);
}

我不明白两件事:

  1. 什么是res变量?它是从哪里来的?是内部变量还是其他什么?

  2. 订阅方法的含义是什么?我想这是为了访问我们将获得的数据,但为什么它被称为订阅

  3. 数据变量的含义是什么?我们从哪里得到的?

我在网络技术中没有见过这种语法:)

  1. res是来自this.http.get中使用的api url的响应
  2. subscribe在所有可观察器上都可用,在这种情况下,只有当您订阅该请求时才会触发
  3. data.map函数的结果,它是服务器发送的字符串的json值

阅读文档https://angular.io/docs/ts/latest/

如果我们将此TypeScript代码转换为纯Javascript:,您可能会更好地理解它

this.http.get( 'https://www.reddit.com/r/gifs/new/.json?limit=10' )
.map(function(res){
return res.json();
})
.subscribe(function(data){
this.posts = data.data.children;
});

基本上,简写的"箭头"函数(() => {}parameter => return)是异步Javascript代码中常见的更详细的匿名(回调)函数的快捷方式。

如您所见,res变量是传递给.map接收的回调函数的参数(每次接收到响应时,在将其发送到.subscribe()方法之前,都会调用该函数),res的意思是"响应",它基本上是从HTTP GET请求中以纯文本(JSON)形式接收的响应对象,它有一个.json()方法,可以将JSON转换为实际的Javascript对象/数组。

subscribe()函数是Observable(RxJs包提供的自定义类)中的一个方法,Observable是.get()和.map()返回的对象类型。它就像Promise,只是可以多次返回结果。传递给.subscribe()函数的回调函数接收data,这是.map()函数返回的内容,或者简单地说,是转换为Javascript对象/数组的HTTP响应的解析JSON,您可以立即开始使用它。

相关内容

  • 没有找到相关文章

最新更新