我只是想知道在同一个函数中加载多个列表是否是一个好主意,因为它们都使用相同的成功回调,代码示例:
function retrieveListItems() {
var clientContext = new SP.ClientContext.get_current();
var camlQuery = new SP.CamlQuery.createAllItemsQuery();
employerList = clientContext.get_web().get_lists().getByTitle('Employer Partners').getItems(camlQuery);
pocList = clientContext.get_web().get_lists().getByTitle('Points of Contact').getItems(camlQuery);
var lists = [employerList, pocList];
for (var i = 0; i < lists.length; i++) {
clientContext.load(lists[i]);
}
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
代码在某些情况下运行,但在&#34时失败;该集合尚未初始化。尚未请求或请求尚未执行。可能需要明确要求。&#34;在其他场合。
答案 0 :(得分:-1)
尝试使用jquery ajax,创建一个返回ajax promise的函数,然后调用.then()方法并执行第二个请求,这样就不会在检索项目时遇到异步问题。
查看此信息以获取更多信息:
希望这有帮助