#typescript #rest #asynchronous #spfx
#typescript #rest #асинхронный #spfx
Вопрос:
Я пытаюсь получить элементы списка с 2 разных сайтов и выполнить некоторые действия только после получения всех данных. Я думал использовать что-то вроде.затем() и Promises.
Я использую SharePoint Framework, это для современного расширения SharePoint, а не веб-части. Я пытался использовать пакетную обработку, но это применимо только к одному сайту SharePoint.
Спасибо всем за вашу помощь!!
Уильям
let web = new Web("https://test.sharepoint.com/test2");
let batch = web.createBatch();
web.lists.inBatch(batch).usingCaching().get().then((r: any) => {
});
web.lists.getByTitle("SharePoint Directory").items.usingCaching().inBatch(batch).top(5000).get().then((r: any) => {
});
batch.execute().then(() => {
console.log("Data retrieved.");
});
Ответ №1:
Пример тестового скрипта для вызова rest api для доступа к другому сайту.(жестко закодируйте URL сайта, вы можете создавать динамически, пользователю также требуется разрешение для другого сайта)
this.context.spHttpClient.get(`https://tenant.sharepoint.com/sites/lee/_api/web/lists/getbytitle('MyList2')/items`,
SPHttpClient.configurations.v1,
{
headers: {
'Accept': 'application/json;odata=nometadata',
'Content-type': 'application/json;odata=verbose',
'odata-version': ''
}
})
.then((response: SPHttpClientResponse) => {
response.json().then((data)=>{
console.log(data);
})
});
Комментарии:
1. Привет, Ли, спасибо за твой ответ, ты предлагаешь использовать что-то подобное? mmsharepoint.wordpress.com/2018/06/08 /…
2. В идеале вы могли бы использовать search api, но это зависит от ваших требований, поскольку поиск не будет обновлять данные немедленно, поскольку это зависит от обхода онлайн-поиска. График может быть лучше learn.microsoft.com/en-us/graph/api / … код был бы сложнее, чем запрос rest api)