我认为在将api响应数据推入数组时犯了一个错误。它没有反映出来。数组的长度保持为1。
当我收到Watson API的回复时。我正在将该响应推送到数组中。然后,我再次调用fetchLogs函数以获取下一页并将其推入同一数组中。但是我只看到第一反应。
当没有日志时,我正在将其写入文本文件。我只看到第一反应。
任何人都可以指导我。为什么价值没有被推动。
let nxt_url = '';
const logs = [];
const fetchLogs = async () => {
let newurl = checkUrl();
try {
let response = await axios.get(newurl, {
withCredentials: true,
headers: {
"Accept": "application/json",
"Content-Type": "application/json"
},
auth: {
username: "abc123"
password: "xyz123"
}
});
if(!isEmpty(response.data.pagination)) {
nxt_url = response.data.pagination.next_url;
logs.push(response.data) // here I am pushing
await fetchLogs();
} else {
console.log("No More Logs");
fs.writeFile("temp.txt", JSON.stringify(logs, null, 2), err => {
if (err) console.log(err);
console.log("log saved in an array !");
});
}
} catch (error) {
console.log(error.message);
}
}
const checkUrl = () => {
if(nxt_url !== '') {
return `https://gateway.watsonplatform.net/assistant/api${nxt_url}`;
} else {
return 'https://gateway.watsonplatform.net/assistant/api/v1/workspaces/788e608a-118d-4c68-811a-45391400b024/logs?cursor=&version=2019-02-28';
}
}
答案 0 :(得分:0)
if (response.data.pagination.next_url) {
nxt_url = response.data.pagination.next_url;
logs.push(response.data); // here I am pushing
return fetchLogs();
} else {
logs.push(response.data);
console.log(logs.length);
console.log('No More Logs');
fs.writeFile('temp.txt', JSON.stringify(logs, null, 2), err => {
if (err) console.log(err);
console.log('log saved in an array !');
});
}