Я разрабатываю надстройку Word (Word API + Office. js), в которой я работаю с элементами управления содержимым, я пытаюсь проверить, является ли элемент управления пустым, если он пуст, я пытаюсь установить флаг «Ложь».
, но из-за асинхронной природы c выполнение перемещается на следующую строку без полного выполнения метода CheckMandatoryFields, следовательно, обязательный флаг всегда имеет значение true.
есть ли способ дождаться завершения выполнения CheckMandatoryFields
var mandatoryflag = "True";
function Test()
{
CheckMandatoryFields();
if (mandatoryflag)
{
document.getElementById('lblstatus').innerText += "Success" + " ";
}
}
function CheckMandatoryFields() {
var MadatoryFieldsList = ["Control1","Control2"];
$.each(MadatoryFieldsList, function (index, element) {
Word.run(function (context) {
var contentControls = context.document.contentControls.getByTag(element).getFirst();
contentControls.load('text');
return context.sync().then(function () {
var text = contentControls.text;
if (text == "") {
document.getElementById('lblstatus').innerText += element + " is Mandatory" + " ";
mandatoryflag = "False";
}
})
});
});
}