修改返回数据,然后以打字稿/离子形式返回承诺

时间:2018-06-27 18:07:04

标签: typescript ionic-framework promise

我有一个非常简单的问题,但我自己无法获得答案。 在我的离子应用程序中,我正在从数据库中获取数据。我想要 修改来自我的

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

然后返回promise,因此视图组件中的函数只需通过以下方式显示数据:

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 :(得分:0)

最好避免使用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)); });
}