node.js - 从 azure 存储表中检索超过 1000 条记录 - js
问题描述
我有一个检索超过一千条记录的问题。不知何故,只检索了前 1000 个。从我的研究中,我发现我必须使用 getContinuation Token 来获取后续记录。请告知我应该如何将它添加到我的代码中。
tableService.queryEntities(table, tableQuery, null, function(error, results) {
if (error) {
alert('List table entities error, please open browser console to view detailed error');
console.log(error);
} else {
//display records
});
解决方案
要根据您的代码使用回调,请使用递归。
var entities = [];
function queryEntitiesSegmented(table, tableQuery, continuationToken){
tableService.queryEntities(table, tableQuery, continuationToken, (error, results)=> {
if (error) { console.log(error); }
else {
entities.push.apply(entities, results.entries);
if(results.continuationToken){
queryEntitiesSegmented(table, tableQuery, results.continuationToken);
}
else{
entities.forEach(entity=>{
// display each one
})
}
}
});
}
queryEntitiesSegmented(table, tableQuery, null);
另一种选择是异步和等待。
const queryEntitiesSegmented = async(table, tableQuery, continuationToken)=>{
return new Promise((resolve,reject)=>{
tableService.queryEntities(table, tableQuery, continuationToken, (error, results)=> {
if (error) { reject(error); }
else { resolve(results); }
});
});
}
async function queryAllEntities(){
var tableQuery = new azure.TableQuery();
var table = 'tableName';
var continuationToken = null;
var entities = [];
do{
var results = await queryEntitiesSegmented(table, tableQuery, continuationToken);
continuationToken = results.continuationToken;
entities.push.apply(entities, results.entries);
}
while(continuationToken!=null);
return entities;
}
queryAllEntities().then(entities=>{
entities.forEach(entity=>{
//display each one
})
}).catch(error=>{ console.log(error); })
推荐阅读
- javascript - 如何通过输入值更改滑块的值
- c++ - 为模板参数中的每种类型声明并实现重载的虚函数
- ruby-on-rails - 如何从 Rails Webpacker 配置中定义的默认规则中排除特定的 css 文件?
- django - Virtualenv 和 django 交互
- spring - 如何在春季修复“通过字段'sessionFactory'表达的不满足的依赖关系”错误
- php - mysqli 查询返回 true 但 fetch_assoc 不起作用
- c# - asp.net EF core 运行命令 Scaffold-DbContext 错误外键
- c++ - 向量在排序后不输出排序值
- c# - System.Runtime.InteropServices.ExternalException:“GDI+ 中发生一般错误。” 在通过 C# 打印文件时
- mongodb - MongoDB,内部对象中的索引查询和分组?