Я потребляю API-мыло, но при запуске функция получает только первый результат от for. Почему не все запросы завершаются или завершаются правильно?
Я пробовал с обещанием функции, ивызовите эту функцию в функции async / await, но она не работает
const moment = require("moment");
const soap = require('soap');
module.exports = {
getData: function (params) {
var StationId = params.StationId;
var session = JSON.parse(params.session);
console.log("MALL ",StationId);
var promises = [];
var sippCodes = [
{sippcode: "EDMR", category:'Economico'},
{sippcode: "CDMR", category:'Compacto'},
{sippcode: "CDAR", category:'Compacto'},
{sippcode: "IDMR", category:'Intermedio'},
{sippcode: "IDAR", category:'Intermedio'},
{sippcode: "IFAR", category:'Suv'},
{sippcode: "SDMR", category:'Estandar'},
{sippcode: "SDAR", category:'Estandar'},
{sippcode: "FDAR", category:'Fullsize'}
];
// for(var m in malls) {
// promises.push(new Promise(function (resolve, reject) {
return new Promise(function (resolve, reject) {
const url = ''http://172.30.8.100:4000/SOAP?service=isCarRental_BookingInterface_Service';
var args = {
SessionId: session.SessionId,
CheckOutStationId:StationId,
CheckOutDate:moment(params.datetime[0]).format('YYYY-MM-DDThh:mm:ss'),//'2019-03-10T10:00:00',//
CheckInStationId:StationId,
CheckInDate:moment(params.datetime[1]).format('YYYY-MM-DDThh:mm:ss'),//'2019-03-11T10:00:00',//
Currency: "MXN",
WaiverPlan: "BASIC",
Waivers:[],
Extras:[],
DealId:0,
BookingNumber:0
};
var vehicles = [];
soap.createClient(url, function(err, client) {
client.GetCarAvailability2(args, function(err, result) {
if(result.Result && result.Result.AvailableCarList){
var avail = result.Result.AvailableCarList;
for(var i in avail.TICarWp){
if(avail.TICarWp[i].BookId){
var sippcode = avail.TICarWp[i].Group.SippCode.$value;
var category = avail.TICarWp[i].Group.Category.$value
var res = sippCodes.filter( item => item.sippcode == sippcode);
if(res.length > 0){
category = res[0].category
}
var vehicle = {
name : avail.TICarWp[i].Group.CarModel.$value,
price : avail.TICarWp[i].CarValuation.Total.$value,
currency : "MXN",
category : category
}
vehicles.push(vehicle);
}else{
console.log("no encuentra el carro");
}
}
resolve(vehicles);
}
});
});
});
}
}
function getData()
for(var i in malls){
var mall = malls[i];
var params = {
datetime: vm.datetime,
StationId: mall.StationId,
session: vm.session
};
const res = await vm.getDataPromise(params);
}
}
getDataPromise(params){
new Promise(function(resolve, reject){
axios.get("/getData", {
params
}).then(function (response) {
// console.log(response);
resolve(response.data);
})
.catch(function (error) {
reject({
error: true,
msg: "Sin datos"
});
})
})
}
Я ожидаю вывод
[{data: data}, {data: данные}, {данные: данные}]
, но фактический результат равен
[{data: true}, {}, {}]