0
我正在使用Angular4應用程序。如何使用其他方法中的observable數據?
這裏是我使用來獲得數據 -
export class BookingService {
constructor(private http: HttpClient) {}
getMemberBookings(memberID: number): Observable<any> {
return this.http.get('http://myapi.com/bookings/member/'+memberID).map(response => response['bookings']);
}
}
,然後在服務我的成分 -
export class PrintButtonComponent implements OnInit {
bookings: any;
constructor(private service: BookingService) {}
ngOnInit() {}
downloadPDF() {
this.getBookings(memberID);
//pdf creation logic
}
getBookings(memberID: number) {
this.service.getMemberBookings(memberID).subscribe(data => this.bookings = data);
}
}
的問題是我想從服務使用數據downloadPDF方法,因爲其中有其他數據將用於創建PDF。 但是,當我從訂閱中返回數據或將其設置爲屬性時,它給出了未定義的。我明白,這是由於異步性,但我不想把我的PDF創建邏輯內的訂閱方法。 那麼我該如何解決這個問題呢?我對Angular和observables很陌生。 謝謝。
謝謝,這個工程。但是,「每個可觀察的多個值」是什麼意思?有沒有辦法用observable-subscriber方法來做到這一點? – doctorsherlock
承諾可以解決一個價值。可觀察值可以有多個發射值。 HttpClient只有一個值完成,因此可以安全地用promise來替換它。你可以用observable來做到這一點,但是你需要在'subscribe'中移動'pdf創建邏輯'。 – estus