从array.splice返回void

时间:2017-04-14 21:51:39

标签: javascript angular typescript

我刚开始学习angular4和打字稿。所以,如果这是一个非常基本的问题,请原谅我。

在我的角度服务中,我定义了一个方法:

  removePerson(person: Person): Promise<void> {
    return Promise.resolve(PERSONS.splice(PERSONS.indexOf(person), 1));
  }

编译器抱怨我应该从Promise<Person[]>

将函数的返回类型更改为Promise<void>

但是我希望从那个Promise中回归。如何更改功能的主体?

2 个答案:

答案 0 :(得分:1)

返回&#34;无效&#34;在javascript中意味着不要返回任何类似的东西:

 removePerson(person:Person){
    PERSONS.splice(PERSONS.indexOf(person), 1);
 }

答案 1 :(得分:1)

那应该是

function removePerson(person: Person): Promise<void> {
  PERSONS.splice(PERSONS.indexOf(person), 1);
  return Promise.resolve();
}

removePerson是同步的,承诺在这里什么都不做。如果它没有真正的理由让它返回一个承诺(例如,该类实现了removePerson应该返回一个承诺的现有API),它可能会改为

function removePerson(person: Person): void {
  PERSONS.splice(PERSONS.indexOf(person), 1);
}