我从限制为 200 条记录的 API 获取记录作为 JSON 对象。我需要获取 800 到 1200 条记录,具体取决于日期。
这种(下面)的工作除了,出于显而易见的原因,它在每次迭代中获取相同的 200 条记录。我最终得到一个包含 1200 条记录的 JSON 对象,但记录 1、201、401、601 等都是相同的。
我觉得这里需要一个计数器,但我不知道如何实现它。
感谢任何帮助或指向正确方向的帮助。
谢谢!
const iteration = new Array(0, 1, 2, 3, 4, 5);
const dealRecords = new Array();
for (var i = 0; i < iteration.length; i++) {
SOMECOMPANY.API.searchRecord({
Entity: "Greeting",
Type: "criteria",
Query: "(Text:equals:Hay)",
}).then(function (data) {
dealRecords.push({ data });
});
}
console.log(dealRecords);
您需要使用偏移量或分页参数(或任何类似参数)来抵消您获得的结果。
执行此操作的确切方法取决于您使用的 API。例如,Twitter 为您提供了一个 pagiantion 令牌,而其他人可能会公开一个查询参数来抵消结果。
根据 API 文档,您可以在配置对象之后插入一个页面参数。而且我认为您不需要循环数组
喜欢:
for (var page = 1; page < 7; page++) {
SOMECOMPANY.API.searchRecord({ Entity: "Greeting", Type: "criteria", Query: "(Text:equals:Hay)" }, page)
...
}
也许使用 page.toString() 因为页面参数必须是一个字符串。
或者您可以尝试更改 perPage 参数并只获得一页包含您需要的所有内容。
SOMECOMPANY.API.searchRecord({ Entity: "Greeting", Type: "criteria", Query: "(Text:equals:Hay)" }, "1", "1200")
``