Angularjs 如何等待http请求
嗨,我需要做这两个http get…之后我需要把数据放在表中并显示出来…但不幸的是angular没有等待http请求。我该怎么做?在这个代码中? 非常感谢Angularjs 如何等待http请求,angularjs,ionic-framework,Angularjs,Ionic Framework,嗨,我需要做这两个http get…之后我需要把数据放在表中并显示出来…但不幸的是angular没有等待http请求。我该怎么做?在这个代码中? 非常感谢 $rootScope.chiamataUno = function() { var authdata = Base64.encode("DEMVSINT_ADMIN" + ":" + "Password01"); $http.defaults.headers.co
$rootScope.chiamataUno = function() {
var authdata = Base64.encode("DEMVSINT_ADMIN" + ":" + "Password01");
$http.defaults.headers.common["Authorization"] = "Basic " + authdata;
$http.get('http://demvsint-as1-sd.services.eni.intranet:8001/CaseManager/P8BPMREST/p8/bpm/v1/queues/DV_ResponsabileBSDL/workbaskets/Responsabile BSDL/queueelements/?cp=DCMSVS_CONN1').success(function(response) {
console.log(response);
$rootScope.rispostaUno = response.queueElements;
$rootScope.risposta = response;
$rootScope.responseJSON = JSON.stringify($scope.risposta);
var newArray = [];
$rootScope.newObjectJSON = [];
$scope.newObject = [];
for(var i=0;i<response.queueElements.length;i++){
var newObject = {
//forse togliere elementi e columns
//elementi:response.queueElements[i],
caseFolderId:response.queueElements[i].caseFolderId.replace("{","").replace("}",""),
caseTaskId:response.queueElements[i].caseTaskId.replace("{","").replace("}",""),
stepName:response.queueElements[i].stepName,
columns:response.queueElements[i].columns,
DV_Caseidentifier_for_eni_OdA: response.queueElements[i].columns.DV_Caseidentifier_for_eni_OdA,
DV_EBELP_ODA: response.queueElements[i].columns.DV_EBELP_ODA,
DV_EINDT_ODA: response.queueElements[i].columns.DV_EINDT_ODA,
DV_MATNR_TXZ01_POS_ODA: response.queueElements[i].columns.DV_MATNR_TXZ01_POS_ODA,
DV_NAMECL_POS_ODA: response.queueElements[i].columns.DV_NAMECL_POS_ODA,
DV_NETPR_WAERS_POS_ODA: response.queueElements[i].columns.DV_NETPR_WAERS_POS_ODA,
DV_PEINH_POS: response.queueElements[i].columns.DV_PEINH_POS,
DV_MENGE_MEINS_POS_ODA: response.queueElements[i].columns.DV_MENGE_MEINS_POS_ODA
};
//console.log("data "+ newObject.DV_EINDT_ODA);
var dataHold = [];
if((newObject.DV_EINDT_ODA !== null) && (newObject.DV_EINDT_ODA !== "?")){
dataHold = newObject.DV_EINDT_ODA;
dataHold = dataHold.split("/");
var dataCorrect = dataHold[2] + "/" + dataHold[1] + "/" + dataHold[0];
//console.log("dataCorrect "+ dataCorrect);
}else{
dataCorrect = newObject.DV_EINDT_ODA;
}
$rootScope.newObjectJSON.push(JSON.stringify(newObject));
//console.log("rootScope.newObjectJSON " + $rootScope.newObjectJSON);
//console.log("dettaglio " + newObject.DV_MENGE_MEINS_POS_ODA + " " + newObject.stepName + " " + newObject.DV_EINDT_ODA);
//console.log("rootScope.caseFolderId " + newObject[i].caseFolderId + " "+ newObject[i].stepName);
newArray.push(newObject);
var queryOdl = "INSERT INTO Tabella_OdL_Temp (caseFolderId, caseTaskId, stepName, DV_Caseidentifier_for_eni_OdA,DV_EBELP_ODA,DV_EINDT_ODA,DV_MATNR_TXZ01_POS_ODA,DV_NAMECL_POS_ODA,DV_NETPR_WAERS_POS_ODA,DV_PEINH_POS,DV_MENGE_MEINS_POS_ODA, Approvata, Rifiutata, Archiviata) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$cordovaSQLite.execute(db, queryOdl, [newObject.caseFolderId === null ? "null" : newObject.caseFolderId.replace("{","").replace("}",""), newObject.caseTaskId === null ? "null" : newObject.caseTaskId.replace("{","").replace("}",""),newObject.stepName === null ? "null" : newObject.stepName, newObject.DV_Caseidentifier_for_eni_OdA === null ? "null" : newObject.DV_Caseidentifier_for_eni_OdA,newObject.DV_EBELP_ODA === null ? "null" : newObject.DV_EBELP_ODA, dataCorrect === null ? "null" : dataCorrect , newObject.DV_MATNR_TXZ01_POS_ODA === null ? "null" : newObject.DV_MATNR_TXZ01_POS_ODA,newObject.DV_NAMECL_POS_ODA === null ? "null" : newObject.DV_NAMECL_POS_ODA,newObject.DV_NETPR_WAERS_POS_ODA === null ? "null" : newObject.DV_NETPR_WAERS_POS_ODA,newObject.DV_PEINH_POS === null ? "null" : newObject.DV_PEINH_POS,newObject.DV_MENGE_MEINS_POS_ODA === null ? "null" : newObject.DV_MENGE_MEINS_POS_ODA, 0, 0, 0]).then(function(result) {
console.log("insert");
}, function(error) {
console.error(error);
});
}//fine for response.queueElements
//console.log(newObject[2]);
for(var j = 0; j < newArray.length; j++){
if(newArray[j].stepName !== "Item details"){
var casefolderId = newArray[j].caseFolderId.replace("{","").replace("}","");
chiamatadue.push('http://demvsint-as1-sd.services.eni.intranet:8001/CaseManager/CASEREST/v1/case/'+ casefolderId +'?TargetObjectStore=CM_DCMSVS_TGT_OBJ');
}
}
$rootScope.chiamataDueNuova();
}) .error(function(response) {
alert("ERROR");
});
}
> Blockquote
var index = 0;
$rootScope.chiamataDueNuova = function(){
if(chiamatadue.length > 0 && index < chiamatadue.length){
var authdata = Base64.encode("DEMVSINT_ADMIN" + ":" + "Password01");
$http.defaults.headers.common["Authorization"] = "Basic " + authdata;
//inserire le autorizzazioni per la chiamata
$http.get(chiamatadue[index]).success(function(result){
index = index + 1;
console.log(result);
$scope.objJ = result.Properties;
var objToInsertOnDB = {
caseFolderId: "",
DV_EBELN_ODA: "",
DV_AEDAT_ODA: "",
DV_EKGRP_EKNAM_ODA: "",
DV_NAME_ODA: "",
DV_NETPR_WAERS_ODA: "",
DV_NAME_CR: "",
DV_StatoPraticaOdA: "",
DV_Caseidentifier_for_eni_OdA: "",
DateCreated: "",
DV_Caseidentifier_for_eni_OdA: ""
};
for(var i = 0; i < $scope.objJ.length; i++){
var actualObj = $scope.objJ[i];
//Ricerco gli elementi da trasmettere nella tabella Chiamata2
if(actualObj['SymbolicName'] === 'DV_EBELN_ODA'){
objToInsertOnDB['DV_EBELN_ODA'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_AEDAT_ODA") {
objToInsertOnDB['DV_AEDAT_ODA'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_EKGRP_EKNAM_ODA") {
objToInsertOnDB['DV_EKGRP_EKNAM_ODA'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_NAME_ODA") {
objToInsertOnDB['DV_NAME_ODA'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_NETPR_WAERS_ODA") {
objToInsertOnDB['DV_NETPR_WAERS_ODA'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_NAME_CR") {
objToInsertOnDB['DV_NAME_CR'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_StatoPraticaOdA") {
objToInsertOnDB['DV_StatoPraticaOdA'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_Caseidentifier_for_eni_OdA") {
objToInsertOnDB['DV_Caseidentifier_for_eni_OdA'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DateCreated") {
objToInsertOnDB['DateCreated'] = actualObj['Value'];
} else if (actualObj['SymbolicName'] === "DV_Caseidentifier_for_eni_OdA") {
objToInsertOnDB['DV_Caseidentifier_for_eni_OdA'] = actualObj['Value'];
}
}
//setto nell'oggetto il caseFolderId
objToInsertOnDB['caseFolderId'] = chiamatadue[index-1].replace("http://demvsint-as1-sd.services.eni.intranet:8001/CaseManager/CASEREST/v1/case/","").replace("?TargetObjectStore=CM_DCMSVS_TGT_OBJ","");
console.log("caseFolderId " + objToInsertOnDB.caseFolderId);
console.log("DV_AEDAT_ODA " + objToInsertOnDB['DV_AEDAT_ODA']);
console.log("DV_NAME_CR " + objToInsertOnDB['DV_NAME_CR']);
console.log("DV_StatoPraticaOdA " + objToInsertOnDB['DV_StatoPraticaOdA']);
console.log("DV_EKGRP_EKNAM_ODA " + objToInsertOnDB['DV_EKGRP_EKNAM_ODA']);
var cfId = objToInsertOnDB.caseFolderId;
var queryOdl = "INSERT INTO Tab_OdL2_Temp(caseFolderId, DateCreated, DV_Caseidentifier_for_eni_OdA, DV_EBELN_ODA, DV_AEDAT_ODA, DV_EKGRP_EKNAM_ODA, DV_NAME_ODA, DV_NETPR_WAERS_ODA, DV_NAME_CR, DV_StatoPraticaOdA, Approvata, Rifiutata, Archiviata) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";
$cordovaSQLite.execute(db, queryOdl, [objToInsertOnDB.caseFolderId === null ? "null" : objToInsertOnDB.caseFolderId, objToInsertOnDB.DateCreated === null ? "null" : objToInsertOnDB.DateCreated, objToInsertOnDB.DV_Caseidentifier_for_eni_OdA === null ? "null" : objToInsertOnDB.DV_Caseidentifier_for_eni_OdA,objToInsertOnDB.DV_EBELN_ODA === null ? "null" : objToInsertOnDB.DV_EBELN_ODA, objToInsertOnDB.DV_AEDAT_ODA === null ? "null" : objToInsertOnDB.DV_AEDAT_ODA, objToInsertOnDB.DV_EKGRP_EKNAM_ODA === null ? "null" : objToInsertOnDB.DV_EKGRP_EKNAM_ODA, objToInsertOnDB.DV_NAME_ODA === null ? "null" : objToInsertOnDB.DV_NAME_ODA, objToInsertOnDB.DV_NETPR_WAERS_ODA === null ? "null" : objToInsertOnDB.DV_NETPR_WAERS_ODA, objToInsertOnDB.DV_NAME_CR === null ? "null" : objToInsertOnDB.DV_NAME_CR, objToInsertOnDB.DV_StatoPraticaOdA === null ? "null" : objToInsertOnDB.DV_StatoPraticaOdA, 0, 0, 0]).then(function(result) {
console.log("insert Tab_OdL2_Temp");
}, function(error) {
console.error(error);
});
$rootScope.chiamataDueNuova();
});//fine get
}//fine if
$rootScope.chiamatuno=function(){
var authdata=Base64.encode(“devsint_ADMIN”+:“+”Password01”);
$http.defaults.headers.common[“Authorization”]=“Basic”+authdata;
$http.get('http://demvsint-as1-sd.services.eni.intranet:8001/CaseManager/P8BPMREST/p8/bpm/v1/queues/DV_ResponsabileBSDL/workbaskets/Responsabile BSDL/queueelements/?cp=DCMSVS_CONN1')。成功(函数(响应){
控制台日志(响应);
$rootScope.rispostaUno=response.queueElements;
$rootScope.risposta=响应;
$rootScope.responseJSON=JSON.stringify($scope.risposta);
var newArray=[];
$rootScope.newObjectJSON=[];
$scope.newObject=[];
对于(var i=0;i块引号
var指数=0;
$rootScope.chiamataduenouva=函数(){
if(chiamatadue.length>0&&index
这是因为$http返回一个承诺。与所有承诺一样,它们有一个then方法,该方法在承诺被解析或拒绝时执行。
$http.get("/your/url").then(function(response) {
// your code that does something with the response HERE
}).catch(function(failedResponse) {
// non-200 response from your HTTP call
})
$q.all([one.promise, two.promise, three.promise]).then(function() {
console.log("ALL INITIAL PROMISES RESOLVED");
});
var onechain = one.promise.then(success).then(success),
twochain = two.promise.then(success),
threechain = three.promise.then(success).then(success).then(success);
$q.all([onechain, twochain, threechain]).then(function() {
console.log("ALL PROMISES RESOLVED");
});