在我的Meteor App的服务器文件夹中,我有server.js和helper.js
在helper.js中我有例如:
import swisseph from 'swisseph'
SWISSEPH = {}
SWISSEPH.SWE_HOUSES_EX = Meteor.wrapAsync(swisseph.swe_houses_ex);
在我的server.js文件中,如果我直接在函数
中传递SWISSEPH.SWE_HOUSES_EX
const calc_longitudes_of_upagrahas = ( SWISSEPH.SWE_HOUSES_EX, flag,latitude, longitude, array_of_juls , index, obj ) => {};
我收到此错误:
While processing files with ecmascript (for target os.osx.x86_64):
server/server.js:488:43: Invalid left-hand side in arrow function parameters (488:43)
但是,如果我首先在另一个变量或const中设置SWISSEPH.SWE_HOUSES_EX
,那么它可以工作:
const x = SWISSEPH.SWE_HOUSES_EX //don't know why if I use SWISSEPH.SWE_HOUSES_EX directly I get an error
const calc_longitudes_of_upagrahas = ( x, flag,latitude, longitude, array_of_juls , index, obj ) => {};
这是什么原因? 对我来说,这是违反直觉的......
答案 0 :(得分:3)
您的代码不会调用函数,而是定义一个新函数:
const foo = (x, y, z) => {}
此语法创建一个名为foo
的新函数,它接受三个参数。所以你的第二个代码示例是有效的,因为x
被解释为一个参数;第一个失败,因为SWISSEPH.SWE_HOUSES_EX
不是有效的参数名称。