Может кто-нибудь выяснить, как преобразовать это в использование обещаний.Я пробовал несколько вещей, но это, похоже, не работает.Я унаследовал этот код от кого-то, кто запускает его на странице SharePoint.Частично проблема заключается в настройке Async: false.И когда я попытался установить его в истинное положение, на панели инструментов на ленте все ломалось, к сожалению, у меня нет доступа к коду ленты.
function findChildren(item, ctxT) {
item.children = [];
return jQuery.ajax({
url: String.format("{0}/_api/web/lists(guid'{1}')/items?$filter=TrackingUnderNumber eq '{2}'", ctxT.HttpRoot, SP.Guid._normalizeGuidString$p(ctxT.listName), item.TrackingNumber),
async: false,
method: "GET",
headers: { "accept": "application/json;odata=verbose" },
success: function (data) {
data.d.results.forEach(function (dItem) {
dItem.parent = item;
item.children.push(dItem);
findChildren(dItem, ctxT);
});
}
});
}
Я думаю, что одна из причин, по которой он решил использовать Async false, заключается в том, что он хотел дождаться загрузки всего дерева, прежде чем включить кнопки и функцию на ленте.Но должен быть лучший способ сделать это.