Многозадачность с Nightmare js
Я по примерам написал функцию, в которой Nightmare парсит страницу.
При отладке я запускал функцию с одним параметром, и все работало. Когда я делаю массив с данными и перебором запускаю функцию парсера, то мне кидает ошибку: Код:
(node:3056) Warning: Possible EventEmitter memory leak detected. 11 close listen const Nightmare = require('nightmare'); const dream = Nightmare({show: 'true'}); const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); myEmitter.on('error', (err) => { console.log('whoops! there was an error'); }); myEmitter.on('db_connect', function(){ dbconn.connect(function(err){ if(err){ console.log('Database connection error'); }else{ console.log('Database connection successful'); } }); }); dbconn.query('SELECT `id`, `operator`, `telefon`, `password`, `data` FROM `base` LIMIT 2', function (error, results, fields) { if (error) throw error; myEmitter.emit('db_connect'); for (i = 0; i < results.length; i++) { myEmitter.emit('beeline', results[i].id, results[i].telefon, results[i].password); } }); myEmitter.on('beeline', function(base_id, login, pass){ console.log('<=====RUN balance: '+login+'=====>'); dream.goto('https://my.beeline.ru') .insert('input[name="loginFormB2C:loginForm:login"]', login) .insert('input[name="loginFormB2C:loginForm:passwordPwd"]', pass) .insert('input[name="loginFormB2C:loginForm:password"]', pass) .click('a[onclick="togglePasswordField(this)"]') .wait(5000) .end() .catch((error) => { console.error('Search failed:', error); }); }); при таком коде ошибки нет, но и Nightmare не стартует, хотя лог записи из функции пишутся.... Подскажите как правильно запустить многопоточность в моем случае? Или если Nightmare не работает с многопоточностью, то как без нее по очереди выполнять функции? |
Если интересно, решил проблему запихнув const dream = Nightmare({show: 'true'}); в функции... Чтобы был не один экземпляр... И тогда все заработало как и хотел :)
|
Часовой пояс GMT +3, время: 04:56. |