Angular 6.执行http发布而不等待返回

时间:2018-07-17 23:27:02

标签: angular

我正在尝试从Angular 6执行长时间运行的http-post触发的Azure函数。我想启动该函数,但是我对在Angular端等待函数完成不感兴趣。如何使用Angular的http模块实现“一劳永逸”功能?

这是我当前的代码:

public generateDemoData$(request: GenerateDemoDataRequestModel): Observable<boolean>{
    let functionUrl = this.getFunctionUrl("GenerateDemoData");
    return this.http.post<ServiceResponseModel<boolean>>(functionUrl, request)
    .pipe(        
      map((x: ServiceResponseModel<boolean>) => x.Data),
    );
  }

2 个答案:

答案 0 :(得分:2)

只需调用方法中的订阅即可,不返回任何内容。

public generateDemoData$(request: GenerateDemoDataRequestModel): void {
    let functionUrl = this.getFunctionUrl("GenerateDemoData");
    this.http.post<ServiceResponseModel<boolean>>(functionUrl, request)
      .subscribe();
  }

答案 1 :(得分:0)

如果没有人关心结果,则不必返回Observable。您只需要订阅 noop 函数即可。

public generateDemoData$(request: GenerateDemoDataRequestModel) {
     let functionUrl = this.getFunctionUrl("GenerateDemoData");
     this.http.post<ServiceResponseModel<boolean>>(functionUrl, request)
         .subscribe(Function.prototype);
}

以上内容将触发POST,而无需理会。

您可能想包括一个catch()来处理错误,并且如果没有人收到响应数据,则不需要map()