I am calling a function onRoute() which returns Promise. function will sync my data to API multiple times according to the length of data and returns back with a string message every time. I wanna store it but the problem is for loop gets completed before getting message from API server.
please help me out.
syncOnRoute() {
return new Promise((resolve, reject) => {
this.auth.database.executeSql('select * from onroute where HaveData=?',
['yes']).then((res) => { //will get 3 data from Database
for (let i = 0; i < res.rows.length; i++) { // will execute 3 times
let params = new HttpParams()
.set('CLAIMGUID', res.rows.item(i)['CLAIMGUID'])
.set('JOBGUID', res.rows.item(i)['JOBGUID'])
.set('Latitude', res.rows.item(i)['Latitude'])
.set('Longitude', res.rows.item(i)['Longitude'])
.set('OnRouteDT', res.rows.item(i)['OnRouteDT'])
.set('Desc', this.auth.getdateformatV2())
.set('title', 'onroute');
this.auth.httpSend('Service_SaveOnRoute', params, 'post').subscribe((msg) => {
console.log('##SUCCESS ONROUTE SYNC' + JSON.stringify(msg)); // getting return msg from API
},
(err) => {
console.log('##SUCCESS ONROUTE SYNC' + JSON.stringify(err));
}
);
} // for loop gets completed before geting return msg from API
x
Here is my httpSent() which is observable
public httpSend(endPoint:string, params:HttpParams , method: string){
switch(method){
case 'post':{
return this.httpClient.post<any>("https://ws-v3test.ventureprise.cloud/Service1.asmx/"+endPoint,params);
}
break;
case 'get':{
return this.httpClient.get<any>("https://ws-v3test.ventureprise.cloud/Service1.asmx/"+endPoint);
}
}
}