У меня есть служба, которая возвращает Observables<SubscriberModel[]>
.
export interface SubscriberModel {
email: string;
}
в моем компоненте. Я получаю подписчиков $ в конструкторе:
public subscribers$: Observable<SubscriberModel[]>;
this.subscribers$ = this.subscribersService.getAll();
и показываю их в шаблоне:
<p *ngFor="let subscriber of subscribers$ | async">{{subscriber.email}}</p>
<button (click)="onDownloadClick()">
<a [href]="fileUrl" download="file.txt">DownloadFile</a>
</button>
Мне нужно загрузить моих подписчиков в файл:
public data: any;
public onDownloadClick(): void {
this.subscribers$.pipe(
map(res => res.map(i => i.email)),
)
.subscribe(res => {
console.log(res) //array of string
this.data = res;
});
console.log(this.data); //undefined
const blob: Blob =
new Blob([this.data], {type: 'application/octet-stream'});
this.fileUrl =
this.sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));
}
Почему в console.log this.data
не определено?