获取休息请求的结果而不是响应?

Get result of rest request instead of response?

我的控制器中有以下功能。

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

如果我输入

console.log(RestRequestsSrvc.getUserDetail());

控制台记录一个承诺。我想为响应设置一个变量。我怎样才能修改我的代码,以便我得到响应而不是承诺?

您可以将 console.log 放入 promise 中。然后

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

事情是当你调用函数时它会被执行但不会等待结果,这就是你得到承诺的原因。一旦请求执行完毕,.then 就会被调用。这就是您处理成功或错误回调的地方。

Return 一个承诺,因为你的请求是异步的。

您应该等待回复,

将 console.log 放入回调函数中应该会打印您的信息。

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

对服务器的请求是异步的,这意味着您必须在回调中处理响应。

您可以使用 async false 标志,但如果您有稍后在代码中执行的独立模块,则不推荐这样做。