【发布时间】:2018-09-25 03:52:26
【问题描述】:
我有一个http://www.data.com/1 模式的网址,其中末尾的 1 可以一直运行到一个未预定义的数字。它返回一个数组。我需要将我得到的所有数组连接成一个。
我的策略是递归执行 get-request,直到收到 404 错误,然后返回结果。
var returnArray = [];
function getData(count){
let p = axios.get(`http://www.data.com/${count}`).then(function(response){
returnArray = returnArray.concat(response.data);
return getData(count +1);
}
).catch(function() {
Promise.resolve(returnArray);
}
)};
然而,当我实现这个函数时,我的结果是未定义的。
getData(1).then((response) => console.log(response))
最好的方法是什么?
【问题讨论】:
-
不确定最佳方式,但我会选择
async/await和while循环,直到它得到404 响应。 -
什么是
getLeadData? -
我认为函数
getLeadData也应该返回promise? -
我猜你从
getData函数返回 promisep,但是因为你希望从catch得到结果,你是否也尝试返回这个?:return Promise.resolve(returnArray);跨度> -
抱歉,忘记重命名函数,
getLeadData等于getData。
标签: javascript promise axios