所以我对JavaScript相当陌生,我有一个充满名词的文本文档,并认为用这些名词创建API是多么好的方法。我已读取文件并将其添加到列表中public List<Noun> getData() throws IOException { Scanner sc = new Scanner(new File("C:\\Users\\Admin\\Desktop\\nounlist.txt")); List<Noun> nouns = new ArrayList(); while (sc.hasNextLine()) { nouns.add(new Noun(sc.nextLine())); } return nouns;}这个列表我用Gson转换为Json:@GET@Path("/nouns/amount=all")@Produces(MediaType.APPLICATION_JSON)@Consumes(MediaType.APPLICATION_JSON)public Response getAllNouns() throws IOException { return Response.ok().entity(gson.toJson(nf.getData())).build();}然后,我开始用js创建我的前端,并试图获取数据,但遇到了一个问题,说promise中未被捕获,类型错误,名词.forEach不是一个函数。import "bootstrap/dist/css/bootstrap.css";const root = document.getElementById("root");var url = "http://localhost:8084/CORSJavaJax-rs/api/noun/nouns/amount=all";var tbody = document.getElementById("tbody");var btn = document.getElementById("btnsend");// fetch(url)// .then(res => res.json)// .then(nouns => {// var n = nouns.map(noun => {// return "<tr>" + "<td>" + noun.name + "</td>" + "</tr>";// });// tbody.innerHTML = n.join("");// });btn.addEventListener("click", function() { fetch(url) .then(res => res.json) .then(nouns => { console.log(nouns); var n = nouns.forEach(noun => { return "<tr>" + "<td>" + noun.name + "</td>" + "</tr>"; }); tbody.innerHTML = n.join(""); });});我尝试了map和forEach,但没有成功,也许我错过了一些东西,或者有一些我不明白为什么我不能映射数据的东西。
1 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
对于您想要的,正确的用法是调用,而不是 .ForEach 不返回值,它只是循环访问集合。mapforEach
您收到错误的原因很可能是由于 缺少对 的函数调用。它应该是.is not a functionres.jsonres.json()
btn.addEventListener("click", function() {
fetch(url)
.then(res => res.json())
.then(nouns => {
console.log(nouns);
var n = nouns.map(noun => {
return "<tr>" + "<td>" + noun.name + "</td>" + "</tr>";
});
tbody.innerHTML = n.join("");
});
});
添加回答
举报
0/150
提交
取消
