What is wrong with my code? privateConfigurationPromise return always "pending". I have to wait for the multiretrieve result before reading. I can not figure out what is wrong. I also tried with a timer but the answer is always "pending". Explain to me what I'm doing wrong.
function isEmpty(obj) {
if (obj == null) return true;
if (obj.length > 0) return false;
if (obj.length === 0) return true;
if (typeof obj !== "object") return true;
for (var key in obj) {
if (hasOwnProperty.call(obj, key)) return false;
}
return true;
}
function retrieveMultipleWithPromise() {
var entityName = "privateconfiguration";
var fieldValue = "value";
var fieldName = "name";
var fieldNameBaseValue = "pc_mvc_base";
var fieldNameControllerValue = "pc_mvc_books";
var option = "$select=" + fieldValue + "&$filter=" + fieldName + " eq '" + fieldNameBaseValue + "' or " + fieldName + " eq '" + fieldNameControllerValue + "'";
return new Promise(function (resolve, reject) {
var result = SDK.REST.retrieveMultipleRecords(
entityName,
option,
function (result) {
},
function (error) {
errorHandler(error);
},
function () {
}
);
if(!(isEmpty(result))){
resolve(result);
}
else{
reject(result);
}
});
}
var iframe = Xrm.Page.getControl("IFRAME_MVCApp");
//retrieve delle due private conf.
var privateConfigurationPromise = retrieveMultipleWithPromise()
.then(result => result.map(function (item) { return item.ava_value; }).join(""))
.catch(error => console.log(error));
};