【发布时间】:2021-06-05 03:33:05
【问题描述】:
在下面的代码中,我的console.log(response) 上有一个空数组,但getIds 函数内的console.log(filterdIds) 显示了我想要的数据。我觉得我的决心不对。
请注意,我运行do..while 一次进行测试。 API 是分页的。如果记录是昨天的,它将继续,如果不是,则do..while 将停止。
有人能指出正确的方向吗?
const axios = require("axios");
function getToken() {
// Get the token
}
function getIds(jwt) {
return new Promise((resolve) => {
let pageNumber = 1;
const filterdIds = [];
const config = {
//Config stuff
};
do {
axios(config)
.then((response) => {
response.forEach(element => {
//Some logic, if true then:
filterdIds.push(element.id);
console.log(filterdIds);
});
})
.catch(error => {
console.log(error);
});
} while (pageNumber != 1)
resolve(filterdIds);
});
}
getToken()
.then(token => {
return token;
})
.then(jwt => {
return getIds(jwt);
})
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
由于do..while,我也不确定将拒绝放在getIds 函数中的哪个位置。
【问题讨论】:
-
不确定为什么你有一个
do/while循环,它只会执行一次。 -
另外,
filterdShipmentsIds是什么?我在任何地方都看不到那个变量。你的意思是resolve(filterdIds);? -
嗨@codemonkey 谢谢你的回复。我对我的帖子进行了编辑。
标签: javascript node.js promise axios