Node , line by line , console.log



  • Нашел десятки готовых решений по парсингу строк из файла на Node.js, но не могу понять почему официальные примеры не работают.
    Ставлю требуемый модуль, перехожу по справке и беру код из примера, который написан самими авторами модуля, а следовательно должен работать, вставляю свой путь файла и консоль лог , там где его нет.
    Запускаю - не работает, иногда с ошибками, иногда без - за 3 дня перепробовал более 20 модулей, ни один не работает, - такого быть не может, видимо я что-то делаю не так.
    Вот тестовый проект, с одним из подобных модулей:
    0_1546540941649_test.xml
    0_1546540958121_Screenshot_1.jpg



  • @sydhe Потрудитесь и ознакомьтесь с мануалом, с работой с Node.js в BAS есть свои особенности, требуется оборачивать в промис и использовать await



  • @usertrue said in Node , line by line , console.log:

    @sydhe Потрудитесь и ознакомьтесь с мануалом, с работой с Node.js в BAS есть свои особенности, требуется оборачивать в промис и использовать await

    Мануал вы имеете ввиду видеоурок на 55 мин? Смотрел я его, а на счет await - забыл написать : не помогает.
    На счет promise, даже не знал - сейчас погуглю.



  • @sydhe https://wiki.bablosoft.com/doku.php?id=node.js
    Пример из мана

    await (new Promise((resolve, reject) => {
        fs.readFile('file3.txt', 'utf8', function(err, contents) {
            resolve()
        });
    }));
    console.log("File Reading done")
    


  • @usertrue said in Node , line by line , console.log:

    @sydhe https://wiki.bablosoft.com/doku.php?id=node.js
    Пример из мана

    await (new Promise((resolve, reject) => {
        fs.readFile('file3.txt', 'utf8', function(err, contents) {
            resolve()
        });
    }));
    console.log("File Reading done")
    

    а, ну это я видел - это-же просто кнопочка синхронизировать, как сказал выше - не помогает.



  • Не успел написать :D
    Код с await для вашего скрипта:

    await (new Promise((resolve, reject) => {
    var readline = require('linebyline'),
          rl = readline([[BASE_PATH]]);
      rl.on('line', function(line, lineCount, byteCount) {
        // do something with the line of text
        console.log(line)
        resolve()
      })
      .on('error', function(e) {
        console.log(e)
        // something went wrong
      });
    	
    }));
    

    0_1546541768264_24d7d443-3022-4860-8bb8-abd5724190eb-изображение.png
    Скрипт



  • @sydhe resolve() то с умом надо ставить )) Вон как у @Fox



  • @usertrue said in Node , line by line , console.log:

    @sydhe resolve() то с умом надо ставить )) Вон как у @Fox

    Ну для меня это пока темный лес, действительно дело было в resolve, я ставил его так:
    0_1546542404813_Screenshot_2.jpg
    по этому ничего и не работало.


Log in to reply
 

  • 1
  • 3
  • 9
  • 2
  • 4
  • 5
  • 2
  • 16