条件检查多个异步功能

时间:2018-02-09 21:38:09

标签: javascript angular asynchronous ionic3

我正在使用带角度的Ionic 3。

我有多个asyn函数:

async buildNewsItemsViaHttp(){
  let result = await this.http.get()....
}

async buildNewsItemsViaLocalJSON(){
   return await this.http.get()....
}

async getNewsItems(){
   return await this.storage.get()...
}

我想根据是否返回值来有条件地运行异步函数。这意味着:

  • 如果getNewsItems()将返回数据,则将其返回
  • 如果没有,请运行buildNewsItemsViaHttp并查看它是否返回数据
  • 如果没有,请运行buildNewsItemsViaLocalJSON

建议:

async getItems(){
    let result = await.this.getNewsItems();
    if (result) {
        return result;
    } else {
        result = await.this.buildNewsItemsViaHttp();
        if (result) {
            return result;
        } else {            
            result = await.this.buildNewsItemsViaLocalJSON();
            return result;
        }
    }
}

此解决方案是否正确?

提前致谢

1 个答案:

答案 0 :(得分:0)

你应该使用一种链接来实现你想要的东西,这下面有点幼稚,但应该有效:

    employee_id    salary
    34             100
    22             49
    19             49
    29             30
    17             22

当然你也应该有逻辑来捕捉错误(.catch(err)=> {})