如何使用TypeScript(例如Promises)进行REST调用以从不同站点获取列表项?

时间:2019-04-23 09:07:48

标签: typescript rest asynchronous spfx

我正在尝试从2个不同的站点检索列表项,并且仅在检索到所有数据后才执行某些操作。我想到要使用.then()和Promises之类的东西。

我正在使用SharePoint Framework,这是用于Modern SharePoint扩展,而不是Webpart。 我尝试使用batching,但它仅适用于单个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 个答案:

答案 0 :(得分:0)

示例测试脚本以调用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);
        })

      });