1
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());
}
불행히도 위의 코드는 예상대로 작동하지 않습니다. 두 번째 호출은 실행하기 전에 첫 번째 약속이 해결 될 때까지 기다리지 않습니다. 많은 감사
큰 감사 : 그냥 재미로에 대한
, 여기 jsFiddle은 당신이해야 할 노력하고 표시되는 내용의 증류 예제입니다 – keyoke