Угловое использование Promise в булевой функции - PullRequest
0 голосов
/ 05 июля 2018

Возможно, я не совсем понял концепцию Promise () в Angular, но как мне изменить приведенный ниже код, чтобы checkExistence () мог возвращать логическое значение?

public checkExistence(value: string): boolean{
  var exist = false;
  return this.getRefData().then((rec: string[]) => {
    return rec.some(el => {
        el === value;
    });
  });
}

private async getRefData() {
  return await this.configurationService.retrieveTableData().toPromise(); 
}

В этот момент выдается ошибка в checkExistence (): [ts] Type 'Promise<any>' is not assignable to type 'boolean'

EDIT

Удалось избавиться от вышеуказанной ошибки, выполнив это:

public checkExistence(value: string): boolean{
  var exist = false;
  this.getRefData().then((rec: string[]) => {
    return rec.some(el => {
        return el === value;
    });
  });
}

Теперь проблема в том, что функция на самом деле ничего не возвращает [ts] A function whose declared type is neither 'void' nor 'any' must return a value. Почему она ничего не возвращает?

1 Ответ

0 голосов
/ 05 июля 2018

checkExistence возврат - это обещание, которое разрешается до boolean

public checkExistence(value: string): Promise<boolean>{
  var exist = false;
  return this.getRefData().then((rec: string[]) => {
    return rec.some(el => {
        el === value;
    });
  });
}

Для использования чека checkExistence в другом месте:

checkExistence()
   .then((value:boolean)=>{console.log(value)})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...