AngularJS promise 的成功函数

AngularJS success function of promise

我已经对 URL.

进行了 HTTP post API 调用

我收到了回复,但我不知道如何编写成功函数,因为有很多方法。

这是我的 API 电话。请帮我看看成功函数会是什么样子?

var req = {
    method: 'POST',
    url: viewProfileurl,
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Authorization': 'Bearer ' + $rootScope.token,
    },
    params: {
        'action':'view'
    }
}

$http(req);

$http returns 具有您可以使用的 then 功能的承诺。

$http(req).then(function (data) { ...; });

then的定义:

then(successCallback, failCallback)

Angular 在 $http 实现中内部使用 promise,即 $q:

A service that helps you run functions asynchronously, and use their return values (or exceptions) when they are done processing.

所以,有两个选择:

第一个选项

您可以使用 .success.error 回调:

var req = {
  method: 'POST',
  url: viewProfileurl,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization': 'Bearer ' + $rootScope.token,
  },
  params: {
    'action': 'view'
  }

}

$http(req).success(function() {
    // do on response success
}).error(function() {
});

但是 .success.error 已弃用。

所以,选择第二个选项。

第二个选项

改用.then函数

var req = {
  method: 'POST',
  url: viewProfileurl,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization': 'Bearer ' + $rootScope.token,
  },
  params: {
    'action': 'view'
  }

}

$http(req).then(function() {
    // do on response success
}, function() {
   // do on response failure
});

您需要编写一个成功回调来检索您的 API 返回的数据。

$http(req)
     .then(function (response) {
         var data = resposne.data;
         ...
      }, function (error) {
         var errorStatusCode = error.StatusCode;
         var errorStatus = error.Status;
         ...
      });

基本上 $http returns 一个承诺,你需要写一个回调函数。

或者你可以这样做:

$http(req).success(function(respData) { var data = respData; ... });
$http(req).error(function(err) { ... });

这是成功和错误语法

    $http.get("/api/my/name")
  .success(function(name) {
    console.log("Your name is: " + name);
  })
  .error(function(response, status) {
    console.log("The request failed with response " + response + " and status code " + status);
  };

使用然后

$http.get("/api/my/name")
  .then(function(response) {
    console.log("Your name is: " + response.data);
  }, function(result) {
    console.log("The request failed: " + result);
  };