我正在尝试运行比特币洞察浏览器(https://www.dgbwiki.com/index.php?title=Running_your_own_Insight_explorer)。使用节点v0.10.48,但出现此错误(在互联网上找不到相同的问题):
digibyte@derecha-virtual-machine:~/insight$ /home/digibyte/.nvm/v0.10.48/bin/node ~/insight/node_modules/insight-bitcore-api/util/sync.js -D -v --rpc
/home/digibyte/insight/node_modules/insight-bitcore-api/node_modules/async/dist/async.js:52
function apply(fn, ...args) {
^
SyntaxError: Unexpected token .
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/digibyte/insight/node_modules/insight-bitcore-api/lib/HistoricSync.js:5:22)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
违规行52位于此功能中:
function apply(fn, ...args) { // <- line 52
return (...callArgs) => fn(...args,...callArgs);
}
我觉得还不错,我不知道节点为什么会出错。
答案 0 :(得分:2)
Node.js 0.10.48不支持传播运算符。支持传播运算符的第一个Node.js版本是5,但是它已经过时了,不再维护。如果您已经在升级,我将升级到LTS仍支持的较新版本之一。
答案 1 :(得分:1)
根据https://node.green/#ES2015-syntax-rest-parameters,节点v0.10.48不支持rest参数(...args
)。
您应该使用较新版本的节点(至少v6.4.0作为默认支持,或者至少v4.9.1带有--harmony
标志(node --harmony
))
答案 2 :(得分:-1)
Apply将数组作为第二个参数。在这里,spread
运算符(...
)对元素进行布局,因此,您无需将数组传递给函数,而是将参数以逗号分隔。
尝试使用.call
代替.apply
,或通过args
代替...args
。