如何在angular js中处理多个异步post方法
How to handle multiple asynchronous post method in angular js?
$scope.savekbentry = function (value) {
console.log('save clicked');
console.log(value);
console.log($scope.kbentry.kbname);
$scope.kbentry.mode = value;
var kbname = $scope.kbentry.kbname;
var kbdescription = $scope.kbentry.kbname;
var kbmode = "";
var type = "";
if ($scope.kbentry.mode == 'symptom') { kbmode = 1; type = 'SYM' }
if ($scope.kbentry.mode == 'allergy') { kbmode = 3; type = 'ALG' }
$http.post('../AjaxRequestData.aspx/AddKBEntry', { KB_Name: kbname, KB_Des: kbdescription, KB_Mode: kbmode })
.success(function (data, status, headers, config) {
$scope.transport = {
method: 'post',
read: '../WM_Autocomplete/GetAutocompleteData.aspx/GetSingletonLst',
params: { type: type }
}
})
.error(function (data, status, headers, config) {
});
clear();
}
在上面的代码中,我想在第一次发帖成功后调用另一个异步发帖方法。目前它没有按照上面的代码工作。如何通过回调函数来处理这个问题?
您可以使用then()
链接并解析$http
的请求承诺,例如:
var getSingletonPromise = function(type){
return $http.post('.../GetSingletonLst', type) // returns a promise
};
var addEntryPromise = function(params){
return $http.post('.../AddKBEntry', params) // returns a promise
};
$scope.savekbentry = function (value) {
addEntryPromise().then(function(){ // use then() to resolve your promise
// addEntry onSuccess
}).getSingletonPromise().then(function(){
// addEntry onSuccess
});
}
你也可以考虑将$http请求分离到一个单独的工厂/服务中,并添加错误处理。
请注意,上面的代码尚未经过测试,但提供了一个可能解决方案的大纲。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- Jquery POST未填充数组
- 如何在php文件中获取$.post-ajax传递的值
- 在继续之前,请确保异步GET/POST请求已完成
- 使用Promises的异步POST请求
- 将异步post更改为同步的普通MVC post
- Flask:接收异步POST请求
- Chrome中的异步jQuery POST请求
- 异步返回已插入post的_id到Mongo collection中
- 如何在angular js中处理多个异步post方法
- 使用jQuery post或类似的异步JavaScript请求向服务器发送空数组
- POST请求在AJAX中不能异步工作
- 在http post AngularJS异步中使用循环
- nodejs POST请求的异步问题
- 我如何将2个异步请求绑定在一起.post调用在Express和NodeJS
- 我如何从异步POST请求返回字符串
- 异步:为什么是表单post重定向
- 在jquery异步POST调用中使用延迟
- 异步post请求和表单post的区别
- Ajax post工作一次,然后再次工作,但不是异步的