searchOrder.callApiBasedOnSearchBy = function(searchBy,responseObj) {
var recordsFinalObj = {
recordsArray: [],
isOrderList: false
};
var finalJson = {};
var self = this;
var mapSearchByToApi = {
'INVOICE_NUMBER': function(responseObj) {
},
'ORDER_NUMBER': function(responseObj) {
self.orderDetailsModel.set("id",responseObj.id);
self.orderDetailsModel.fetch({}).then(function(orderDetailsResponse) {
var orderDetails = orderDetailsResponse.records[0];
if(typeof orderDetails.packet_ids !== 'undefined') {
var packet_id = orderDetails.packet_ids[0];
self.packetDetailsModel.set("id",packet_id);
self.packetDetailsModel.fetch({}).then(function(packetDetailsResponse) {
console.log(packetDetailsResponse);
finalJson = packetDetailsResponse.records[0];
finalJson.order_items = orderDetails.order_items;
console.log(finalJson);
return finalJson;
}, function(error) {
console.log("Error in Order Item:"+error);
});
}
}, function(error) {
console.log("Error in Order:"+error);
})
},
'AWB_NUMBER': function(responseObj) {
},
'CHANNEL_ORDER_ID': function(responseObj) {
}
}
if(mapSearchByToApi[searchBy]) {
finalJson = mapSearchByToApi[searchBy](responseObj);
recordsFinalObj.recordsObj = finalJson;
return recordsFinalObj;
}
}
I want to return the final json to my UI. However the control of the loop is returned before my promises are executed.