了解Javascript编译器和Meteor JS
在Meteor应用程序的服务器文件夹中,我有server.js和helper.js 在helper.js中,例如:了解Javascript编译器和Meteor JS,javascript,meteor,Javascript,Meteor,在Meteor应用程序的服务器文件夹中,我有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\u HOUSES\u EX const calc_longitudes_of
import swisseph from 'swisseph'
SWISSEPH = {}
SWISSEPH.SWE_HOUSES_EX = Meteor.wrapAsync(swisseph.swe_houses_ex);
在我的server.js文件中,如果我直接在函数中传递SWISSEPH.SWE\u HOUSES\u 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)
但是,如果我首先将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 ) => {};
这是什么原因?
对我来说,这是违反直觉的….您的代码不调用函数,而是定义了一个新函数:
const foo = (x, y, z) => {}
此语法创建一个名为
foo
的新函数,该函数接受三个参数。第二个代码示例之所以有效,是因为x
被解释为一个参数;第一个函数失败,因为SWISSEPH.SWE\u HOUSES\u EX
不是有效的参数名。您的代码不调用函数,而是定义了一个新函数:
const foo = (x, y, z) => {}
此语法创建一个名为foo
的新函数,该函数接受三个参数。第二个代码示例之所以有效,是因为x
被解释为一个参数;第一个失败,因为SWISSEPH.SWE\u HOUSES\u EX
不是有效的参数名