Изменить возвращаемые данные, а затем вернуть обещание в машинописном / ионном - PullRequest
0 голосов
/ 27 июня 2018

У меня очень простой вопрос, но я не могу получить ответ сам. В моем ионном приложении я получаю данные из базы данных. я бы хотел изменить данные, поступающие из моего

sqlite.execute(): Promise<Article[]>

затем возвращает обещание, так что функция в компоненте представления просто должна показывать данные следующим образом:

this.controllercomponent.getSearchResults( SearchTerm ).then( Res => this.Articles = Res );

К настоящему времени я решаю это с помощью вложенного обещания, но ionic возвращает ошибку:

return new Promise<Article[]>( Resolve => 
    {
    this.dbGetSearchResults( SearchTerm ).then( Res => 
      { 
      //Modify articles array

      Resolve(Res);
      })
    .catch( Err => { this.showAlert( "Error fetching db data:", JSON.stringify(Err)); });
    });

Ошибка:

{
"originalErr": {},
"__zone_symbol__currentTask": {
  "type": "microTask",
  "state": "notScheduled",
  "source": "Promise.then",
  "zone": "<root>",
  "cancelFn": null,
  "runCount": 0
}

}

1 Ответ

0 голосов
/ 27 июня 2018

Лучше избегать конструктора Promise, если он не нужен.

function f() {
    return Promise.resolve()
        .then(()=>this.dbGetSearchResults( SearchTerm ))
        .then((Res)=>{
            /*Modify articles array*/
            return Res;
        })
        .catch( Err => { this.showAlert( "Error fetching db data:", JSON.stringify(Err)); });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...