我正在使用PNP SP查询列表项及其附件。如何为当前函数编写正确且简化的版本?
下面的函数有效,我从第一个查询中获取结果,它检索ID,TITLE,LINK。但是第二个查询Title,Link.URL,FileName,ServerRelativeUR没有任何结果-但是,当我调试代码时,可以看到第二个查询正在执行并返回值,但是该函数在完成第二个查询之前就离开了。如何使此函数正确地查询所有内容并将它们返回给调用者?
2016-04-21 09:38:38+00:00
<class 'datetime.datetime'>
答案 0 :(得分:2)
代替对每个列表项进行REST调用,您可以使用expand
属性在第一个REST调用本身中获取数据。
您可以通过以下示例代码对其进行修改:
sp.web.lists.getByTitle("LIST").items.select("Title", "ID", "Links" "AttachmentFiles").
expand("AttachmentFiles").get().then((response) => {
console.log(response);
});
您可以根据需要对其进行修改。这将为您提供列表项附件的数组,如下所示:
答案 1 :(得分:-1)
这是我的测试代码。
sp.web.lists.getByTitle('MyList').items.select('Id', 'Title', 'EncodedAbsUrl').get().then( response => {
response.forEach( item => {
let _Item = sp.web.lists.getByTitle("MyList").items.getById(item.ID);
_Item.attachmentFiles.select('FileName', 'ServerRelativeUrl').get().
then( responseAttachments => {
responseAttachments.forEach( attachmentItem => {
result += item.Title + "<br/>" +
item.EncodedAbsUrl + "<br/>" +
attachmentItem.FileName + "<br/>" +
attachmentItem.ServerRelativeUrl + "<br/><br/>";
});
});
});
})