gpt4 book ai didi

javascript - 扎 PIL 的分页

转载 作者:行者123 更新时间:2023-12-02 22:51:36 27 4
gpt4 key购买 nike

我正在尝试按照代码从 Zapier 中的分页 API 获取所有记录。

const limitPerPage = 20;
const apiUrl = "https://myurl.com/data";
var lastCursor = null;
var output = null;

const getContent = async function (cursor) {
let actualUrl = apiUrl + `?cursor=${cursor}&limit=${limitPerPage}`;
var apiResults = await fetch(actualUrl)
.then(resp => {
return resp.json;
});
}

const getEntireContentList = async function (cursor) {
const results = await getContent(cursor);
console.log("Retreiving data from API for cursor : " + cursor);
if (results.metadata.cursor !== "") {
return results.concat(await getEntireContentList(results.metadata.cursor));
} else {
return results;
}
};


(async() => {
const entireList = await getEntireContentList();
console.log(entireList);
output = entireList;
callback(null, entireList);
})();

我收到错误如下您没有定义输出!尝试 output = {id: 1, hello:await Promise.resolve("world")};

我该如何解决这个问题?

最佳答案

您的问题是,尽管您在该函数中 await ,但顶层仍在继续,并且在您的代码有机会运行之前执行就结束了。

好消息是,Zapier 已经将您的代码包装在异步函数中,因此您可以在顶层使用 await (根据 these docs )。

试试这个:

const limitPerPage = 20;
const apiUrl = "https://myurl.com/data";
let lastCursor = null;
// var output = null; // zapier does this for you already

const getContent = async function (cursor) {
const actualUrl = apiUrl + `?cursor=${cursor}&limit=${limitPerPage}`;
const rawResponse = await fetch(actualUrl)
return resp.json() // async function, you had it as a property
}

const getEntireContentList = async function (cursor) {
const results = await getContent(cursor);
console.log("Retreiving data from API for cursor : " + cursor);
if (results.metadata.cursor !== "") {
return results.concat(await getEntireUserList(results.metadata.cursor)); // should this be named getEntireContentList?
} else {
return results;
}
};


return {
results: await getEntireContentList()
}

我注意到这是一种递归方法。没关系,但请记住,您的执行时间是有限的。您还可能会达到内存限制(取决于您返回的对象数量),因此请密切关注。

关于javascript - 扎 PIL 的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58157284/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com