我使用以下代码来获取使用分页的文档列表。代码工作正常。但是如果我想从客户端发送它以进行分页,我该如何找到延续令牌。
function queryCollectionPaging() {
return new Promise((resolve, reject) => {
function executeNextWithRetry(iterator, callback) {
iterator.executeNext(function (err, results, responseHeaders) {
if (err) {
return callback(err, null);
}
else {
documents = documents.concat(results);
if (iterator.hasMoreResults()) {
executeNextWithRetry(iterator, callback);
}
else {
callback();
}
}
});
}
let options = {
maxItemCount: 1,
enableCrossPartitionQuery: true
};
let documents = []
let iterator = client.queryDocuments( collectionUrl, 'SELECT r.partitionkey, r.documentid, r._ts FROM root r WHERE r.partitionkey in ("user1", "user2") ORDER BY r._ts', options);
executeNextWithRetry(iterator, function (err, result) {
if (err) {
reject(err)
}
else {
console.log(documents);
resolve(documents)
}
});
});
};
你可以在responseHeaders参数中找到延续令牌,请尝试使用responseHeaders ['x-ms-continuation']
来抓取它。
如 :
continuationToken = responseHeaders ['x-ms-continuation'];
然后,您可以将令牌作为参数传递给execute方法。
let options = {
maxItemCount: 1,
enableCrossPartitionQuery: true,
continuation : continuationToken
};
如果continuationToken
为null,则表示没有更多结果。
你可以参考我之前的案例:How to get & set Cosmos Db continuation token in javascript。
希望它能帮到你。