【发布时间】:2019-01-25 09:59:31
【问题描述】:
我在我的代码中使用了 .slice() 函数对我从 API 请求 (.get) 的响应中获得的 10 个元素组成的数组进行切片,这允许我显示 10 个元素中的 9 个。
但是,我想在单击按钮时返回第 10 个元素。
例如,如果 API 请求共有 19 个元素,并且我将它们像 (0, 9) 一样切片,那么在单击按钮后,它应该将第 10 个元素添加到下一个 9,依此类推。
以下是我正在使用的 Javascript 代码:
getProjects: function() {
this.loading = true;
let url = this.craftURL();
axios.get(url, {
headers: {
Accept: "application/json"
}
}).then(response => {
this.loading = false;
console.log("Response", response.data)
if (response.data.projects) {
response.data.projects.project.slice(0, 9).forEach(project => {
this.projects.push(this.parseProject(project));
});
} else if (response.data.search.response) {
if (response.data.search.response.numberFound == 0) {
this.noProjects = true;
return;
}
response.data.search.response.projects.project.slice(0, 9).forEach(project => {
this.projects.push(this.parseProject(project));
});
if (this.projects.length == response.data.search.response.numberFound) {
this.hideButton = true;
return;
} else {
this.hideButton = false;
return;
}
}
}).catch(error => {
console.log(error);
});
},
this.projects 是我在数据中添加的一个空数组。
非常感谢!
【问题讨论】:
-
看来你的
getProjects函数本身应该返回一个Promise,你不能从一个普通函数中的Promise返回。因为 Promise 是异步的。
标签: javascript arrays button axios slice