Javascript 附加到.json()调用的.results属性是什么?

Javascript 附加到.json()调用的.results属性是什么?,javascript,json,promise,es6-promise,Javascript,Json,Promise,Es6 Promise,所以我对JavaScript并不陌生,但我正在尝试学习Angular2以及更多关于JavaScript ES6承诺的知识,我正在努力做到这一点。在构建pokedex service.ts文件一节中,getPokemon()函数的一部分如下所示: getPokemon(offset: number, limit: number) { return this.http.get(`${this.baseUrl}?offset=${offset}&limit=${limit}`)

所以我对JavaScript并不陌生,但我正在尝试学习Angular2以及更多关于JavaScript ES6承诺的知识,我正在努力做到这一点。在构建
pokedex service.ts
文件一节中,
getPokemon()
函数的一部分如下所示:

getPokemon(offset: number, limit: number) {
    return this.http.get(`${this.baseUrl}?offset=${offset}&limit=${limit}`)
      .toPromise()
      .then(response => response.json().results) //<- line in question
      .then(
           // ... etc ...
      );
}
getPokemon(偏移量:数字,限制:数字){
返回this.http.get(`${this.baseUrl}?offset=${offset}&limit=${limit}`)
.toPromise()
。然后(response=>response.json().results)//response.json().results)

具体地说,我知道
response
是传递给当时的承诺的占位符,我知道
response.json()
将该承诺的结果转换为一个json对象。但我不知道链接到
response.json()
末尾的
.results
属性是什么

我检查过,认为这可能是Promises的属性,我检查过,但在两个API中都找不到与
结果
对应的任何属性(或方法)。这个属性是什么,它来自哪里


此外,它与简单地使用
response.json()
有什么区别?它的返回值传递到下一个
then()

当您请求服务器时,响应将是一个字符串。这里的.json()函数表示“我将把字符串响应转换为Javascript对象”。这就是json()然后,一旦你有了你的对象,你就可以访问他的属性。在这里,服务器返回一个带有属性结果的对象

getPokemon(offset: number, limit: number) {
    return this.http.get(`${this.baseUrl}?offset=${offset}&limit=${limit}`)
      .toPromise()
      .then(response => response.json().results) //<- line in question
      .then(
           (data) => { // your code }
      );
}
使用这段代码,即使服务器不返回带有“results”属性的对象,它也可以工作

还有进口

import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';

如果非要我猜(我猜),我会说这是
.json()
返回的承诺的解析结果。在我看来,似乎有人正在访问承诺的内部,而他不应该这样做。
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';