user1283776
user1283776

Reputation: 21784

Get result of rest request instead of response?

I have the following function in my controller.

RestRequestsSrvc.getUserDetail()
  .then(
    function (response) {
      $scope.user.userDetail = response;
    },
    function (error) {
      // TODO
    });

If I type

console.log(RestRequestsSrvc.getUserDetail());

the console logs a promise. I want to set a variable the the response. How can I modify my code so that I get the response instead of a promise?

Upvotes: 1

Views: 59

Answers (3)

Ponpon32
Ponpon32

Reputation: 2200

Requests to the server are asynchronous, meaning that you must handle the response inside the callback.

You could use async false flag but this is not recommended if you have independent modules that executed later in the code.

Upvotes: 0

VeNoMiS
VeNoMiS

Reputation: 330

Return a promise because your request is async.

You should wait the response,

Putting the console.log inside the callback function should print your info.

RestRequestsSrvc.getUserDetail()
  .then(
    function (response) {
      $scope.user.userDetail = response;
      console.log(response);
    },
    function (error) {
      // TODO
    });

Upvotes: 1

JonathanG
JonathanG

Reputation: 292

You can do the console.log into the promise .then

RestRequestsSrvc.getUserDetail()
  .then(
    function (response) {
      $scope.user.userDetail = response;
      console.log(response);
    },
    function (error) {
      // TODO
    });

The thing is that when you call the function it will be executed but will not wait for the result, that's why you get a promise. The .then stuff is called once the request is done executing. That's where you handle your success or error callbacks.

Upvotes: 0

Related Questions