private Promise <string> AuthPromiseChaining() { var authModel = new Auth { Username = "******", Password = "******" }; return(_userDataService.Auth(authModel) .Then(authResponse => _userDataService.Get(authResponse.UserId)) .Then(user => user.Level) .Then(x => Debug.Log(string.Format("PromiseHttpController.OnGUI - [Thenx3] User Complete - LoadLevel={0}", x))) .Fail(x => Debug.LogError("An error has occoured."))); //NOTE: Instead of the above you can write it as below as well. //return _userDataService.Auth(authModel) // .Then(delegate(AuthResponse authResponse) // { // Debug.Log(string.Format("PromiseHttpController.OnGUI - [Then] authResponse={0}", authResponse)); // return _userDataService.Get(authResponse.UserId); // }) // .Then(delegate(User user) // { // Debug.Log(string.Format("PromiseHttpController.OnGUI - [Thenx2] User Result. user={0}", user)); // return user.Level; // }) // .Then(delegate(string level) // { // Debug.Log(string.Format("PromiseHttpController.OnGUI - [Thenx3] User Complete - LoadLevel={0}", level)); // //TODO. LoadLevel... // }) // .Fail(x => Debug.LogError("An error has occoured.")); }