使用Angular 6异步API请求

时间:2018-12-06 12:14:56

标签: angular angular6

根据我的要求,我需要使用Angular 6 Httpclient发送异步请求。
谁能解释一下如何发送异步请求?

在组件中循环调用:

REST API服务中的

功能:

现在,所有请求一起完成。但是我希望在完成第一个请求后第二个请求应该继续执行。

请让我知道Angular 6中有可能吗?

请尝试为我提供一些很好的例子。

this.pressArray.forEach(function(field_value, field_index){
  restAPI.CallAddPageBlock(formData, '', id).subscribe(response2 => {
    content_blocks.push(response2.id);
  });
});


CallAddPageBlock(formData, tickets='', id): Observable<any> {
  var full_url = this.baseUrlContent + 'Hub_PageBlock_C/assets/';
  if(id!=0){
    full_url = full_url+id
  }
  return this.http.post(full_url, formData, this.httpOptionsJson).pipe(); 
}

1 个答案:

答案 0 :(得分:0)

您可以将async / await与Promise配合使用来简化此行。使用toPromise()

将可观察值转换为承诺
async doSomethingAsync() {
  for(var item of this.pressArray) {
    let response2 = await restAPI.CallAddPageBlock(formData, '', id).toPromise();
    content_blocks.push(response2.id);
  }
}

无需在末尾的pipe中呼叫CallAddPageBlock

有关异步/等待的更多信息,请参见此出色的答案,然后滚动至标题ES2017+: Promises with async/await