在我的 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_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 ) => {};
这是什么原因呢? 对我来说这是违反直觉的......
最佳答案
您的代码不会调用函数,而是定义一个新函数:
const foo = (x, y, z) => {}
此语法创建一个名为 foo
的新函数,它采用三个参数。因此,您的第二个代码示例可以工作,因为 x
被解释为参数;第一个失败,因为 SWISSEPH.SWE_HOUSES_EX
不是有效的参数名称。
关于javascript - 了解 Javascript 编译器,也许还有 Meteor JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48365253/