如何解决多次调用时,Sharepoint fetchClientFactory 不会更新站点 url
我有一个场景,我需要从 Sharepoint 子站点获取列表数据。
我的代码是这样的。
const nodejs_1 = require("@pnp/nodejs");
const sp_1 = require("@pnp/sp");
let sitesArray = ['site1','site2','site3','site4','site5']
for(let i = 0; i < sitesArray.length; i++){
let participants = await importParticipantsFromSharepoint(sitesArray[i]);
console.log(participants)
}
//following is separate lambda function
function importParticipantsFromSharepoint(protocol_code){
return new Promise( async function(resolve,reject) {
const participants = [];
try{
sp_1.sp.setup({
sp: {
fetchClientFactory: function () {
//on each function call I am updating the base url
return new nodejs_1.SPFetchClient("https://abcd.sharepoint.com/Proj/Active/" + protocol_code,"********************","**********************");
}
}
});
let w = await sp_1.sp.web.get();// at second iteration its still printing the data from first iteration
console.log(JSON.stringify(w));//
sp_1.sp.web.lists.getByTitle("Subject Tracking Log").items.top(1000).get().then(function (items) {
items.forEach(function(item){
});
resolve(participants);
});
}catch(e){
console.log(e)
reject(e)
}
});
}
我的代码在 AWS Lambda 中运行。 运行时:nodejs 10+
在 Sharepoint 中添加了一些参与者,我正在尝试获取它们以保存在 db 中。每个站点都有唯一的参与者,就像在站点 1 中的参与者是 p1、p2、p3,在站点 2 中的参与者是 pp1、pp2、pp3。当我的代码为 site1 运行时,我得到了正确的参与者,但对于 site2,我从 site1 得到了错误的参与者。我已经打印了日志并发现 fetchClientFactory 没有被更新。我无法直接访问 sharepoint,这是我第一次使用 Sharepoint nodejs lib。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。