В моем приложении Angular 6 есть индикатор выполнения, который должен отображать прогресс рендеринга и загрузки PDF-файла в процентах. Вызов My Post выглядит следующим образом:
renderReport(renderObjectId: number): Observable<HttpEvent<Blob>> {
return this.httpService.post('/render/report/' + renderObjectId, {
observe: 'events',
responseType: 'blob'
});
}
Соответствующий метод в серверной части выглядит следующим образом:
[HttpPost]
[Route("report/{renderReportId}")]
[ResponseType(typeof(HttpResponseMessage))]
public HttpResponseMessage PrintReport(int renderReportId)
{
var man = new RenderingManager();
MemoryStream pdfFileStream = man.RenderReport(renderReportId);
return CreatePdfDownload(pdfFileStream);
}
Метод RenderReport()
занимает некоторое время, поскольку записано xml , подтверждено et c. Чего я хочу добиться, так это того, что во внешнем интерфейсе я могу подписаться на результат renderReport(renderObjectId: number)
и получать несколько обновлений от внутреннего интерфейса, например: «в настоящее время выполняется в шаге 5 из 12 в RenderReport ()».
Is что как-то возможно? Может быть, вручную возвращать самоопределенный статус после каждого метода, вызванного в RenderReport
?