【发布时间】:2017-11-03 15:07:58
【问题描述】:
我正在尝试使用递归将多个 API 调用的结果填充到一个数组中。我对 ES6 和递归的东西很感兴趣,可能需要一些帮助。
这是我当前的代码,它只返回“promise”:
getAllEmployees: function() {
let allEmployees = []; // this array will contain all employees
let pageNumber = 1; // start with page 1
const getThoseEmployees = function(pageNumber) {
return axios.get(rest_url + 'users/?per_page=50&page=' + pageNumber, {
headers: {
'X-WP-Nonce': WPsettings.nonce
},
}).then(response => {
// add the employees of this response to the array
allEmployees = allEmployees.concat(response.data);
pageNumber++;
if (response.headers['x-wp-total'] > allEmployees.length) {
// do me again...
return getThoseEmployees(pageNumber);
} else {
// this was the last page, return the collected contacts
return allEmployees;
}
});
}
return getThoseEmployees();
},
// after "created" in vue
this.allEmployees = this.getAllEmployees(); // returns "promise"
【问题讨论】:
标签: javascript recursion ecmascript-6 es6-promise axios