如何及时发送 http 请求并在 My Angular/ionic 组件中保持更新的数据

问题描述

我有一个简单的驱动程序 ionic/angular 应用程序,需要定期从服务器检索最新的预订更新。

服务器没有实现 SignalR 或类似技术,所以我必须每 10 秒发出一次 http 请求以从服务器获取数据......

我还必须有一个中央 ionic/angular 服务,该服务有一个本地变量,其中包含更新版本的预订(每 10 秒)。我们称之为 Booking[]

类型的 UpdateBookings

其他页面,例如bookings-list 和booking-details,必须在每次UpdateBookings 变量中的数据发生变化时得到通知

也许通过 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
})

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...