Пытаюсь построить нужную мне цепочку вызовов
IsInNameGroup(){
return new Promise(function(resolve, reject) {
var currentUserId = Xrm.Utility.getGlobalContext().userSettings.userId;
var fetch = `my fetch`;
fetchXML = "?fetchXml=" + encodeURIComponent(fetch);
Xrm.WebApi.retrieveMultipleRecords("role", fetchXML).then(
function success(result) {
var res = false;
if(result.entities.length === 1){
res = true;
}
resolve(res);
},
function (error) {
console.log(error.message);
}
);
});
},
OnClick: function(primaryControl){
let p = new Promise(function(resolve,reject){
let result = this.IsInNameGroup();
result.then(res =>{
debugger;
resolve(res);
});
});
p.then(res => {alert(res);});
alert("халлоу");
},
В конечном итоге, должно получится так, что метод OnClick сперва выводит результат работы метода IsInNameGroup (true/false), и только после этого алерт alert("халлоу");
На данный момент мой код сперва выводит "халлоу", и потом выкидывает в консоль "TypeError: this.IsInNameGroup is not a function". В целом да, IsInNameGroup действительно не функция, а метод. Но как исправить код и получить нужный мне порядок выполнения? OnClick делать async нельзя, т.к. это handler (просто напросто не работает будучи async).