gpt4 book ai didi

javascript - nodejs递归调用相同的api并顺序写入excel文件

转载 作者:行者123 更新时间:2023-12-03 02:29:07 24 4
gpt4 key购买 nike

在从 API 获取结果后,我需要使用请求 promise 递归调用 API 需要写入 Excel 文件,下面给出 API 示例响应

{
"totalRecords": 9524,
"size": 20,
"currentPage": 1,
"totalPages": 477,
"result": [{
"name": "john doe",
"dob": "1999-11-11"
},
{
"name": "john1 doe1",
"dob": "1989-12-12"
}

]
}

现在我想调用这个API n次,这里n等于totalPages,调用每个API后我想将响应结果写入excel文件。首先将第 1 页响应结果写入 Excel,然后将第 2 页响应结果附加到 Excel 文件,依此类推。我编写了一些示例代码,如下所示

function callAPI(pageNo) {
var options = {
url: "http://example.com/getData?pageNo="+pageNo,
method: 'GET',
headers: {
'Content-Type': 'application/json'
},
json: true
}
return request(options)
}

callAPI(1).then(function (res) {
// Write res.result to excel file
}).catch(function (err) {
// Handle error here
})

但是面临着递归调用 API 和顺序维护的问题,比如首先将第 1 页结果写入 Excel 文件,然后将第 2 页结果附加到 Excel 等等。任何代码示例如何在nodejs中实现

最佳答案

你想做这样的事情:

function getAllPages() {
function getNextPage(pageNo) {
return callAPI(pageNo).then(response => {
let needNextPage = true;
if (pageNo === 1) {
// write to file
} else {
// append to file
}

if (needNextPage) {
return getNextPage(pageNo+1);
} else {
return undefined;
}
});
}

return getNextPage(1);
}

显然,将“needNextPage”更改为 false 以在完成后停止递归

关于javascript - nodejs递归调用相同的api并顺序写入excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48811174/

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