简体   繁体   English

从array.splice返回void

[英]Return void from array.splice

I have just started to learn angular4 and typescript. 我刚刚开始学习angular4和打字稿。 So, if this a very basic question then please forgive me. 因此,如果这是一个非常基本的问题,请原谅我。

In my angular service I am defining a method like: 在我的角度服务中,我正在定义类似的方法:

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

Compiler is complaining me that I should change the return type of function to Promise<Person[]> from Promise<void> 编译器在抱怨我应该将函数的返回类型从Promise<void>更改为Promise<Person[]> Promise<void>

But I want to return void from that Promise. 但是我想从那个承诺中退回虚无。 How can I change the body of my function? 如何更改功能主体?

returning "void" in javascript means don't return any thing like this: 在javascript中返回“ void”意味着不返回任何类似的信息:

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

Then it should be 那应该是

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

removePerson is synchronous and the promise does nothing here. removePerson是同步的,promise在这里什么也不做。 If there's no real reason for it to return a promise (eg the class implements existing API where removePerson should return a promise), it may be changed to 如果没有真正的理由返回承诺(例如,该类实现了现有的API, removePerson应该返回承诺),则可以将其更改为

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM