Javascript hero.service.ts create()如何将id号添加到阵列(英雄之旅)

Javascript hero.service.ts create()如何将id号添加到阵列(英雄之旅),javascript,json,angular,rxjs,Javascript,Json,Angular,Rxjs,我正在做《英雄之旅》的角度教程,但我没有被卡住,我只是有个问题 hero.service.ts中的create()函数是如何将id号添加到JSON数组的?我似乎找不到它的设置位置,而且即使在删除和添加之后,它似乎也知道如何对列表id号进行编号 create(name: string): Promise<Hero> { return this.http .post(this.heroesUrl, JSON.stringify({name: name}),

我正在做《英雄之旅》的角度教程,但我没有被卡住,我只是有个问题

hero.service.ts中的create()函数是如何将id号添加到JSON数组的?我似乎找不到它的设置位置,而且即使在删除和添加之后,它似乎也知道如何对列表id号进行编号

    create(name: string): Promise<Hero> {
     return this.http
       .post(this.heroesUrl, JSON.stringify({name: name}), {headers:   this.headers})
       .toPromise()
       .then(res => res.json().data)
       .catch(this.handleError)
    }
create(名称:string):承诺{
返回此文件。http
.post(this.heroesUrl,JSON.stringify({name:name}),{headers:this.headers})
.toPromise()
.then(res=>res.json().data)
.接住(这个.把手错误)
}
只是有点困惑,这将有助于我更好地理解这个函数

谢谢,,
Bryan

这是英雄之旅应用程序用于存储英雄实体的
InMemoryDataService
类提供的。整个服务的来源如下:

如果选中
post
方法,将看到以下代码块:

if (!item.id) {
      item.id = id || this.genId(collection);
}
其中
genId(…)
是:

  protected genId(collection: any): any {
    // assumes numeric ids
    let maxId = 0;
    collection.reduce((prev: any, item: any) => {
      maxId = Math.max(maxId, typeof item.id === 'number' ? item.id : maxId);
    }, null);
    return maxId + 1;
  }

从本质上说,它创建了一个新的数值,该数值是先前已知的最大id值的增量。

哇,多谢了,我花了很多时间试图弄清楚它,然后我就应该有了。我知道我写的代码里没有。这是一段很好的代码供将来使用。很高兴我能帮上忙。不要忘记:如果这是正确的解决方案,你可以接受这个答案。在这里阅读更多关于投票/接受答案的信息:再次感谢@Andras