#javascript #sharepoint
Вопрос:
У меня есть эта функция, но результаты возвращаются неопределенными. Похоже, я упускаю что-то, что не соответствует возврату.
Я попробовал несколько вещей, но все равно получил те же результаты. Чего мне не хватает?
function spGetListColumns(listTitle, siteURL = _spPageContextInfo.webAbsoluteUrl) {
var listGetURL = siteURL "/_api/web/lists/getbytitle('" listTitle "')/fields?$select=Title,TypeAsString,TypeDisplayName,Requiredamp;$filter=Hidden eq false and ReadOnlyField eq false";
var getOptions = {
method: 'GET',
headers: new Headers({
'Accept': 'application/json; odata=verbose',
'content-type': 'application/json; odata=verbose'
})
};
var spResults = [];
spGetItems(listGetURL);
function spGetItems(newListURL) {
return fetch(newListURL, getOptions).then(response => response.json()).then(data => {
spResults = spResults.concat(data.d.results);
if (data.d.__next) {
newListURL = data.d.__next;
return spGetItems(newListURL);
} else {
return spResults;
}
}).catch(error => {
console.error(error);
});
}
}
Ответ №1:
Результат, возвращаемый в fetch, является обещанием. Я немного изменил ваш код:
function spGetListColumns(listTitle, siteURL = _spPageContextInfo.webAbsoluteUrl) {
var listGetURL = siteURL "/_api/web/lists/getbytitle('" listTitle "')/fields?$select=Title,TypeAsString,TypeDisplayName,Requiredamp;$filter=Hidden eq false and ReadOnlyField eq false";
var getOptions = {
method: 'GET',
headers: new Headers({
'Accept': 'application/json; odata=verbose',
'content-type': 'application/json; odata=verbose'
})
};
var spResults = [];
return spGetItems(listGetURL)
function spGetItems(newListURL) {
return fetch(newListURL, getOptions).then(response => response.json()).then(data => {
spResults = spResults.concat(data.d.results);
if (data.d.__next) {
newListURL = data.d.__next;
spGetItems(newListURL);
} else {
console.log(spResults);
return spResults
}
}).catch(error => {
console.error(error);
});
}
}
Вызовите функцию spGetListColumns:
spGetListColumns('List1').then(res=>{console.log(res)})
Комментарии:
1. Я думаю, что это 1 строка, которую я не пытался вернуть! Я сходил с ума, выясняя это. Спасибо!