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);
};
我已经对 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);
};