等待异步js中的函数返回

时间:2016-12-12 15:26:50

标签: javascript angular asynchronous

首先,我最近在中断了几年后重新开始进行网络开发。我使用angularjs进行了一点工作,但现在我切换到了Angular2。

我的问题是如何处理异步js?我看过很多演示和文章,但它们似乎从未适用于我的情况。现在,我从API获取信息,将数据转换为可用数组,然后根据该数组进行一些计算(将其视为两个函数,一个接着一个)。我该如何处理,特别是在角度2世界?

createArray(){
// Getting data from api (from service)
// Creating an array
// Returning array
}

calculations(){
// Doing calculations on the returned array
}

如何进行计算以等待createArray?

1 个答案:

答案 0 :(得分:0)

有多种方法可以实现这一目标,

下面使用RxJS,

// Returns an observable
createArray(){
// Getting data from api (from service)
// Creating an array
// Returning array

 // Assuming you are using Angular 2 http service
 return this.http.get('URL', <options>)
    .map(result => {
      // Create Array here using result
      // Call 
    })
}

calculations(someArray){
// Doing calculations on the returned array
}

// Use the methods
someOtherMethod(){
  this.createArray()
      .map(res => this.calculations)
      .subscribe(res => {
        // result after performing calculations on Array from createArray.
      })
}

您也可以使用Promises。

希望这会有所帮助!!