“结果”在从 nativescript/angular 中的 http.get 请求获得的 Observable 的 .map 运算符中是什么意思

阿内尔·冈萨雷斯

我正在做 nativescript/angular 教程,我在代码中发现了一些我不明白的东西,想要澄清一下。

在第 4 章(Nativescript 模块)中,当他们执行 http.get 请求以检索 Grocery List 并获得 Observable 时,我注意到它是通过一些地图操作符传递的,这是代码:

import { Injectable } from "@angular/core";
import { Http, Headers } from "@angular/http";
import { Observable } from "rxjs/Rx";
import "rxjs/add/operator/map";

import { Config } from "../config";
import { Grocery } from "./grocery";

@Injectable()
export class GroceryListService {
  constructor(private http: Http) {}

  load() {
    let headers = new Headers();
    headers.append("Authorization", "Bearer " + Config.token);

    return this.http.get(Config.apiUrl + "Groceries", {
      headers: headers
    })
    .map(res => res.json())
    .map(data => {
      let groceryList = [];
      data.Result.forEach((grocery) => { //<------HERE
        groceryList.push(new Grocery(grocery.Id, grocery.Name));
      });
      return groceryList;
    })
    .catch(this.handleErrors);
  }

  handleErrors(error: Response) {
    console.log(JSON.stringify(error.json()));
    return Observable.throw(error);
  }
}

我的问题是,“结果”在第二个 .map 中是什么意思

为什么他们不简单地把

data.forEach((grocery) => {

我问是因为我不确定它是否是来自 .map(res => res.json) 或其他东西的结果 observable 的对象属性。

你能给我指出一些关于“结果”来自哪里以及它意味着什么的文档吗?

谢谢。

模因作曲家

首先,这一行将.map(res => res.json())响应正文解析为一个 json 对象。然后第二个map允许在data参数下访问这个 json 对象由 表示的 json 对象data实际上是实际响应结果数据的包装器,使用Result作为映射到后端返回的数据的键,遵循此安全建议HERE所以data.Result只是一个映射到后端返回的实际数据的键。后端可以为密钥使用不同的名称,例如秘密,然后您可以data.secret获取从服务器返回的数据

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档