【发布时间】:2018-05-31 14:20:27
【问题描述】:
在做了一些实验后,我发布了没有更改的代码,以找到最佳实践: 我有一个函数(在服务中)以 BLOB 形式订阅结果并将其作为文件内容保存到本地文件系统 - FileSaver.saveAs(result, );:
printAsPDF()
{
if (<some validator fails>)
{
return;
}
let htmlContent = "<html><body>" + <some html content> +"</body></html>";
//this.GetByteArrayForPDF returns Observable<any> (actually observable of a blob)
this.GetByteArrayForPDF(htmlContent).subscribe(result =>
{
FileSaver.saveAs(result, <file name>);
}, error => console.log(error));
}
现在,我希望该函数 printAsPDF 还返回一个可观察值,指示保存操作是否成功。 目前,正在从组件执行对该函数的调用:
this.<service name>.printAsPDF();
我希望该组件函数订阅 observable 并检查保存是否成功。 考虑到对 printAsPDF 的调用应该得到一个 observable(true) 取决于是否调用了 FileSaver.saveAs(result, ),我该怎么做
【问题讨论】:
-
是
FileSaver.saveAs()异步吗?如果是这样,它会使用Promise甚至Observable之类的东西吗?还有你用的是什么版本的 RxJS?
标签: angular observable observer-pattern subscribe