$.Deferred() and SharePoint 2013 JavaScript CSOM
$.Deferred() and SharePoint 2013 JavaScript CSOM
我想利用jQuery $。Deferred/promise 功能以及 SharePoint JavaScript API。这是我试图实现的目标的一个例子。
function getCachedSearches() {
var dfd = $.Deferred(function () {
var list = context
.get_web()
.get_lists()
.getByTitle('CachedSearches');
cached_searches = list.getItems('');
context.load(cached_searches);
context.executeQueryAsync(
function () {
dfd.resolve();
},
function (sender, args) {
dfd.reject(args.get_message());
}
);
});
return dfd.promise();
}
function addCachedSearch(phrase) {
var dfd = $.Deferred(function () {
var list = context
.get_web()
.get_lists()
.getByTitle('CachedSearches');
var create_item = new SP.ListItemCreationInformation();
var list_item = list.addItem(create_item);
list_item.set_item('Title', phrase);
list_item.update();
context.load(list_item);
context.executeQueryAsync(
function () {
dfd.resolve();
},
function (sender, args) {
dfd.reject(args.get_message());
}
);
});
return dfd.promise();
}
function doSearch() {
addCachedSearch($('#phrase').val())
.then(getCachedSearches());
}
不幸的是,上面的代码没有按预期工作 - 第二次调用在执行之前不会等待第一个承诺被解析。非常感谢
我想我看到了一个问题:.then()
需要一个函数引用,但你正在调用函数并传入结果(在本例中为承诺)。试试这个:
function doSearch() {
addCachedSearch($('#phrase').val())
.then(getCachedSearches);
}
请注意,getCachedSearches
不再具有()
参数。
只是为了踢球,这里有一个jsFiddle,上面有一个提炼的例子,说明你似乎正在尝试做什么:http://jsfiddle.net/UbBz3/
相关文章:
- 为什么IE JavaScript断点在Visual Studio 2013中停止工作
- Javascript使用php日期字符串显示2014年而不是2013年
- Sharepoint 2013 Javascript ClientPeoplePicker默认值文本
- CRM Dynamics 2013 JavaScript验证自由文本字段中的最小字符数
- CRM 2013-引用子记录的Javascript表单警报(onload事件)
- 使用Just My Code在Visual Studio 2013中调试Javascript
- VS 2013 嵌入式对象中JavaScript的Web断点
- 在 SharePoint 2013 中使用 JavaScript
- 无法在 Visual Studio 2013 和 IE 11 中调试 JavaScript
- 在 JavaScript 中将日期 2013-11-05 转换为 2013 年 11 月 5 日星期二
- $.Deferred() and SharePoint 2013 JavaScript CSOM
- New Office 2013 Javascript API limitations
- Office 2013 Javascript API-将变量传递到“”的回调;.BindingDataChanged”;
- 如何在独立脚本中使用Microsoft Office 2013 javascript API
- Sharepoint 2013 Javascript -获取列表字段
- CRM 2013 Javascript N:N AssociateObjects not working
- Sharepoint 2013 Javascript对象模型IE兼容
- Visual Studio 2013 Javascript无法识别'<%= %>'
- crm 2013 javascript保存和刷新崩溃
- Visual Studio 2013 JavaScript/TypeScript奇怪的缩进行为