Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript evernote findNotesMetadata-使用offset和maxnotes循环检索所有注释_Javascript_Node.js_Evernote - Fatal编程技术网

Javascript evernote findNotesMetadata-使用offset和maxnotes循环检索所有注释

Javascript evernote findNotesMetadata-使用offset和maxnotes循环检索所有注释,javascript,node.js,evernote,Javascript,Node.js,Evernote,根据findNotesMetadata的Evernote,在1个响应中从服务器返回的maxnotes为250。我试图理解如果超过250,如何发出多个请求来检索整个阵列。下面是当前代码 const Evernote = require('evernote'); const developerToken = "..."; const client = new Evernote.Client({token: developerToken, sandbox: false}); const noteSto

根据findNotesMetadata的Evernote,在1个响应中从服务器返回的maxnotes为250。我试图理解如果超过250,如何发出多个请求来检索整个阵列。下面是当前代码

const Evernote = require('evernote');
const developerToken = "...";
const client = new Evernote.Client({token: developerToken, sandbox: false});
const noteStore = client.getNoteStore();
const spec = {}
  spec.includeTitle = true;
  spec.includeTagGuids = true;
  spec.includeAttributes = true;
  spec.includeNotebookGuid = true;
const filter = new Evernote.NoteStore.NoteFilter({
  words: '*',
});

noteStore.findNotesMetadata(filter, 0, 250, spec)
  .then(noteobj => {  
   ...
  })
  .catch( e => console.error(e));

目前的代码还没有包含任何循环,但最多可以使用250个注释。由于Evernote SDK和处理承诺,我甚至不确定从哪里开始。我在网上搜索了很多,直接(查看Evernote示例)和间接(查看其他RESTAPI示例)找到了解决方案。一点运气都没有。非常感谢您的帮助。

findNotesMetadata
offset
参数是您在实际结果集中指示开始索引的方式。对于显示的代码,您正在传入
0
(这是第二个参数)。这表示您希望结果以实际结果集中的项0开始,最多250个结果

如果要在包含250个结果的窗口中“翻页”结果集,可以使用250作为偏移量再次调用该方法,并请求下一个250个结果。这是一种非常常见的设计模式,用于通过远程API或任何在检索数据时有资源约束的对象来分页结果集。当没有更多的结果可用时,您将需要处理这些情况,这可能是因为您得到的返回少于您要求的
maxNotes
,或者是在一个角落的情况下,您得到了确切的最大值,但在下面的请求中为零。这就是你知道如何打破你的循环

Evernote API似乎提供了一个
findNoteCounts
方法,它应该让您知道实际结果会有多少,但与所有异步系统一样,在API调用之间存在一个理论竞赛,即数量会发生变化