我有一个简单的ionic/angular应用程序,它需要定期从服务器检索最新的预订更新。
服务器没有SignalR或类似的技术实现,所以我必须做一个http请求从服务器每10秒获取数据…
我还必须有一个中央ionic/angular服务,它有一个本地变量,它保存预订的更新版本(每10秒)。我们将它命名为类型为booking的updatebooking []
当变量updatebooking中的数据发生变化时,必须通知其他页面,如booking- list和booking-details。
可能通过RxJs的observable, subject或BehaviorSubject…
实现这种场景的最佳方式是什么?
你可以使用RXJS间隔每10秒调用一次API
private _updateBookings = new BehaviorSubject<booking[]>([]);
updateBookings = this._updateBookings.asObservable();
getBookings(){
//return http.get().pipe(map((bookings:booking[])=>{
this._updateBookings.next(bookings);
})
}
然后在你的组件中你可以调用&订阅updateBookings
interval(10000).subscribe()=>{
this.service.getBooking();
});
this.service.updateBookings.subscribe((bookings:booking[])=>{
//do some stuff
})