это не функция в электронном хроме, но не консоль узла - PullRequest
0 голосов
/ 26 октября 2018

Я использую пакет 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

Uncaught TypeError: forEachBatch is not a function

Я новичок в Node и Electron. Любое понимание, которое поможет мне лучше понять архитектуру, будет оценено.

1 Ответ

0 голосов
/ 26 октября 2018

Модуль не возвращает ничего в браузере.

Немного его кода

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

Так что, когда вы делаете это

var forEachBatch = require('foreach-batch')

, то послеФункция require не возвращает ничего, что вы перезаписали window.forEachBatch, и оно становится неопределенным.

Так что попробуйте вместо этого

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

Я не пробовал это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...