我正在尝试从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),
);
}
答案 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,而无需理会。 p>
您可能想包括一个catch()
来处理错误,并且如果没有人收到响应数据,则不需要map()
。