JavaScript中通过fetch请求返回数据创建字典报invalid syntax错误如何解决
问题诊断
你当前编写的是JavaScript的fetch请求代码,触发invalid syntax :语法错误的核心原因是混淆了JavaScript箭头函数的解析规则:
- 箭头函数后直接跟大括号
{}时,JS引擎会将其识别为函数代码块的起始标记,而非你要返回的对象字面量的边界符,因此代码块内出现的"Data":xxx键值对写法不符合JS代码块语法,直接抛出语法错误。
正确实现
两种写法都可以解决问题:
- 简写返回写法:给要返回的对象外层包裹圆括号,显式告知引擎括号内是要返回的对象值,而非代码块
fetch(URL) .then(result => result.json()) .then(data => ({"Data": data['htmlcontent']}));
- 显式return写法:在大括号代码块内明确写return语句返回对象,无语法歧义
fetch(URL) .then(result => result.json()) .then(data => { return {"Data": data['htmlcontent']}; });
提示:你日常使用Python开发,容易把Python字典直接写
{}即可返回的习惯带到JS里,JS箭头函数没有外层圆括号时不会把大括号识别为对象,这点是两类语言的语法差异。
内容的提问来源于stack exchange,提问作者j.t.2.4.6
相关产品推荐
相关产品推荐

