【问题标题】:is not a function in electron chrome but not node console不是电子铬中的功能,但不是节点控制台
【发布时间】:2018-10-27 00:14:25
【问题描述】:

我在一个电子项目中使用 npm 包 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

我是 Node 和 Electron 的新手,任何有助于我更好地理解架构的见解将不胜感激。

【问题讨论】:

  • 好像是模块本身的问题

标签: javascript node.js npm electron


【解决方案1】:

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

它的一些代码

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

所以当你这样做时

var forEachBatch = require('foreach-batch')

那么由于 require 函数没有返回任何内容,因此您覆盖了 window.forEachBatch 并且它变得未定义。

所以试试这个

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

你没试过。

【讨论】:

  • 成功了,感谢@Molda 的解释和帮助
猜你喜欢
  • 1970-01-01
  • 2018-07-12
  • 2020-09-24
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 2016-11-28
  • 2019-10-22
  • 1970-01-01
相关资源
最近更新 更多