Javascript 将sdk.rest多重检索传递给承诺
我的代码有什么问题? PrivateConfigurationPromission返回总是“挂起”。在阅读之前,我必须等待多重检索结果。我想不出哪里出了问题。我也试过用计时器,但答案总是“待定”。 向我解释我做错了什么Javascript 将sdk.rest多重检索传递给承诺,javascript,promise,Javascript,Promise,我的代码有什么问题? PrivateConfigurationPromission返回总是“挂起”。在阅读之前,我必须等待多重检索结果。我想不出哪里出了问题。我也试过用计时器,但答案总是“待定”。 向我解释我做错了什么 function isEmpty(obj) { if (obj == null) return true; if (obj.length > 0) return false; if (o
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));
};
什么是
SDK.REST
?它可能看起来像返回新承诺((resolve,reject)=>{SDK.REST.retrieveMultipleRecords(entityName,option,resolve,reject,()=>{};})代码>@Bergi SDK.Rest是Microsoft针对Rest调用的js SDK。根据您提出的更正,使用“privateConfigurationPromise return always”pending获得相同的结果-您如何使用它?retrieveMultiple返回两个字段,然后连接,它们将组成一个URL,我将使用该URL在iframe中解封webapp