Can';t获取ClientContext.executeQuery()以在javascript中工作
我从sharepoint列表中获取信息,然后我想使用该数据。问题是我需要在使用Sharepoint服务器之前从该服务器更新数据,但我无法使executeQuery()正常工作。不过,我可以让executeQueryAsync()工作。这是我的密码:Can';t获取ClientContext.executeQuery()以在javascript中工作,javascript,sharepoint-2010,Javascript,Sharepoint 2010,我从sharepoint列表中获取信息,然后我想使用该数据。问题是我需要在使用Sharepoint服务器之前从该服务器更新数据,但我无法使executeQuery()正常工作。不过,我可以让executeQueryAsync()工作。这是我的密码: // Global variables; var context; var web; var list; var howManyItem = 0; var allItems; var randNums = []; // Initializes t
// Global variables;
var context;
var web;
var list;
var howManyItem = 0;
var allItems;
var randNums = [];
// Initializes the variables; Sets listname; Gets all items;
function init(){
context = new SP.ClientContext.get_current();
web = context.get_web();
// Enter the list name;
this.list = web.get_lists().getByTitle('LetsTalkAdded');
// Get item count in the query/list;
var query = SP.CamlQuery.createAllItemsQuery();
allItems = list.getItems(query);
context.load(allItems, 'Include(Title)');
context.executeQueryAsync(Function.createDelegate(this, this.success), Function.createDelegate(this, this.failed));
}
这很好,但当我将最后一行更改为:
context.executeQuery(Function.createDelegate(this, this.success), Function.createDelegate(this, this.failed));
它不再工作,但我不能异步运行它们。如果我这样做,我的代码中依赖于这些信息的部分就不起作用了。为什么executeQuery()函数不起作用?executeQueryAsync无法填充全局变量。它的唯一用途是向用户显示警报。除此之外,它没有任何用处。我一直在尝试类似的方法,使用ExecuteQuery而不是异步版本。据我所知,JSOM中不支持非异步版本。因此,您必须使用异步版本 看着他的6号。
两个示例中的最后一行似乎相同。不,它们不同。executeQueryAsync vs executeQuery.你说我的“它不再工作”是什么意思?您收到了什么错误消息?这是不正确的--executeQueryAsync,就像任何其他javascript函数都可以在许多范围内操作变量一样,包括全局scrope。您有任何用于操作全局变量的引用吗?我可以让executeQueryAsync在它调用的函数范围内工作,但似乎无法将变量传递给全局范围。感谢这是正确的-JavaScript对象模型中没有同步查询执行