我有以下幾種類型: DataService - 使用signalr集線器從服務器獲取數據。 AppComponent - 這是我主應用程序的入口點如何在我的信號服務初始化之前推遲加載組件?
數據服務構造函數如下。
constructor(private http: Http) {
var hub = $.connection.spwHub;
hub.client.loadEmployees = this.loadEmployees;
$.connection.hub.start().done(() => {
...
});
}
我AppComponent如下:
constructor(service: DataService) {
this.company = service.getCompany();
service.getEmployees().then(employees => this.employees = employees);
this.departments = service.getDepartments();
}
我得到的當然是下面的錯誤,因爲由集線器連接之前樞紐異步調用至今未歸。
EXCEPTION:./AppComponent類中的錯誤AppComponent_Host - 內聯模板:0:0由:SignalR:Connection尚未完全初始化。使用.start()。done()或.start()。fail()在連接啓動後運行邏輯。
在AngularJs2中處理這個問題的最佳方法是什麼?
我還不確定。我的意思是我想要一個隨機函數來處理信號。我可以只是$ .connection.hub.start()。done(()=> {...});但是,這打破了目的。我不想從AppComponent外部加載數據。我不僅需要最初運行一些代碼,還必須在加載應用程序組件之前返回代碼。 – jwize