Can';t获取ClientContext.executeQuery()以在javascript中工作

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

我从sharepoint列表中获取信息,然后我想使用该数据。问题是我需要在使用Sharepoint服务器之前从该服务器更新数据,但我无法使executeQuery()正常工作。不过,我可以让executeQueryAsync()工作。这是我的密码:

// 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对象模型中没有同步查询执行