我有一個登錄過程,具有相當複雜的登錄變體,必須可擴展以便在未來輕鬆添加更多。所以最初以典型的方式驗證用戶並返回用戶對象。然後,我必須進行額外的http調用才能獲得信息,以便在用戶被授予對應用程序的訪問權限之前確定各種要求。這是使用用戶對象中返回的一些值完成的。我想以一種可以方便地添加http調用而不改變當前代碼的方式編寫代碼,所以我認爲使用fork聯接進行後續調用會很好,因爲它們可以並行完成。以下是我的工作代碼。更好的方式使用另一個可觀察到的後續fork連接
我可以很容易地將新的請求添加到fork join調用中,雖然它對我來說看起來並不糟糕我被告知嵌套訂閱是一種代碼異味,通常是不好的做法。如何更好地做到這一點的任何想法都會很棒。
謝謝。
this.authenticate.login(this.model)
.subscribe(
_data => {
this.subscription = Observable.forkJoin(
this.devicesHttp.getDevicesByMacAddress(this.macAddress),
this.teamsService.getTeamsByUserId(_data['userId'])
);
this.subscription.subscribe(
_data => {
// Check login type and other stuff...
}
);
}
);
謝謝。這是完美的。你們兩個都放棄了相同的答案,但是你以45秒的時間擊敗了另一個。 – Aaron