is not a function in electron chrome but not node console

时间:2018-10-26 15:52:22

标签: javascript node.js npm electron

I'm using the npm package, foreach-batch使用。我已经安装了软件包,没有Cannot find module错误。

var forEachBatch = require('foreach-batch')
var stuff = [0,1,2,3,4,5,6,7,8,9]

forEachBatch(stuff, function(i) { console.log(i) }, 2, function(progress) {
  console.log(progress);
}, 1000);

代码在节点控制台中按预期运行

$ node
> var forEachBatch = require('foreach-batch')
undefined
> var stuff = [0,1,2,3,4,5,6,7,8,9]
undefined
> 
> forEachBatch(stuff, function(i) { console.log(i) }, 2, function(progress) {
...   console.log(progress);
... }, 1000);
0
1
0.2
...

但是,当我用npm start启动电子并在Chrome控制台中输入相同的代码时。我收到Uncaught TypeError: forEachBatch is not a function

Uncaught TypeError: forEachBatch is not a function

我是Node and Electron的新手,任何能帮助我更好地理解体系结构的见识都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

该模块在浏览器中不返回任何内容。

一些代码

var forEachBatch = function() { .... };
window.forEachBatch = forEachBatch;

所以当您这样做

var forEachBatch = require('foreach-batch')

然后,由于require函数不会返回任何内容,因此您覆盖window.forEachBatch并变为未定义。

所以试试这个

require('foreach-batch')
forEachBatch(...);

我还没有尝试过。