NodeJS认为我在不复制参数名称时

时间:2018-12-21 22:01:11

标签: javascript node.js ecmascript-6

感谢您查看我的问题。

在此JavaScript初始化代码的第94行中,我收到语法错误:“在此上下文中不允许使用重复的参数名称”。但是,我没有重复任何参数。我所有函数的参数名称在它们的范围内都是唯一的。

存储库位于https://github.com/allenchan3/foodproject/blob/c3442a3b8542e1f9cbcc5f3f78175765a292dd9a,相关脚本位于https://github.com/allenchan3/foodproject/blob/c3442a3b8542e1f9cbcc5f3f78175765a292dd9a/server/config/initialize.js。错误显示在对create_menu_items的函数调用上。我仔细检查了此文件中是否有重复的参数名称,但没有找到。我尝试更改主函数中3个声明的变量中每个变量的名称,以及更改参数的名称。似乎没有什么能摆脱语法错误,这会阻止我的函数执行。

async function create_menu_items(filenames, directory, cat_names_to_ids) {
    /// stuff
}
async function main() {
    await create_menu_items(menu_item_filenames, menu_item_dir, categories_name_to_id);
}


[skyler@laptop server]$ npm start
[.....snip.....]
(node:6571) UnhandledPromiseRejectionWarning: SyntaxError: Duplicate parameter name not allowed in this context

如前所述,此错误一直出现,并且功能create_menu_items无法运行,即使我认为应该这样做,因为所有参数似乎都与任何内容都不冲突。

再次感谢您的光临。

2 个答案:

答案 0 :(得分:4)

Here's您的问题

objects.reduce((prev_items,curr_items_obj,_,_)=>{
                                          ^ ^

似乎您想以这种方式省略可选参数,但是您应该像这样跳过它们:

objects.reduce((prev_items,curr_items_obj)=>{

答案 1 :(得分:0)

如果您真的想使用_来省略参数,则将另一个命名为__(双下划线),以避免重复的参数错误,例如:

objects.reduce((prev_items,curr_items_obj,_,__)=>{