我需要搜索多个异步查询 - 一次是500个结果(在sharepoint客户端对象模型中),最后给用户返回所有结果。
我是javascript的新手,所以我问你的建议我是如何让它工作的。 我已经为演示我需要的东西做了一个简单的例子
var results;
var promises = [];
function Search(startRow) {
var d = $.Deferred();
setTimeout(function() {
alert(startRow);
//results+= ... - search results for the current startRow
d.resolve(); },
3000);
return d.promise();
}
var portion = 500;
var startRow = 0;
var rowCount = 2002;
while (rowCount > startRow + portion) {
startRow += portion;
promises.push(Search(startRow));
}
$.when.apply($, promises).then(
function(){
alert('done'); // get all search results here
});
所以我需要的是在搜索功能中获得正确的当前startRow
UPD:使用最后一个startRow
调用所有警报答案 0 :(得分:0)
我设法做到这一点。有没有更好的方法?
var results;
var promises = [];
function Search() {
var d = $.Deferred();
setTimeout(function() {
alert(startRows[0]);
startRows.splice(0, 1);
//results+= ...
d.resolve(); },
3000);
return d.promise();
}
var startRows = [];
var portion = 500;
var startRow = 0;
var rowCount = 2002;
while (rowCount > startRow + portion) {
startRow += portion;
startRows.push(startRow);
promises.push(Search());
}
$.when.apply($, promises).then(
function(){
alert('done'); // get all search results here
});