Особенности работы Node.js



  • Привет всем.
    Создаю 2 действия Node.js
    1

    let s = await require("../tstlib");
    await s.tst1();
    

    2

    let s = await require("../tstlib");
    await s.tst2();
    await console.log(await s.tst2());
    await console.log(await s.tst3());
    

    И создаю файл в любом из этих действи Node.js в левой части редактора кода функцией "Добавить новый файл" с именем tstlib. Получается что-то типа модуля JS его текст:

    exports.tst1 = async function () {
            await console.log("+++++++ tst1 +++++++");
        }
    
    exports.tst2 = async function () {
                    await console.log("+++++++ tst2 +++++++");
                    return "+++++++ return tst2 +++++++";
                }
    
    exports.tst3 = async function () {
            return "+++++++ tst3 +++++++";
        }
    

    В результате выполнения получается лог:

    [394149317] [19:20:04] Поток №1 : +++++++ tst1 +++++++
    [70541593] [19:20:04] Поток №1 : +++++++ return tst2 +++++++
    [70541593] [19:20:04] Поток №1 : +++++++ tst3 +++++++
    

    Скрипт успешно завершается. В результате видим что вызов функции console.log("+++++++ tst2 +++++++") не срабатывает.
    Я сделал пока такой вывод, что, если действие Node.js подключает файл/модуль-js и запускает require("../tstlib")
    То во всех последующих действиях Node.js перестают работать все вызовы BAS_API() и console.log() прописанные в ранее подключенном модуле.

    Вопрос:
    Может можно как-нибудь заставить работать BAS_API() и console.log() прописанные в модуле и вызывемые в последующих действиях Node.js?

    Такое поведение по сути не позволяет полноценно повторно использовать код модуля-js.



  • @Dmitry33 Пока решил всю логику писать в одно действие Node.js.
    В результате BAS-скрипт состоит из одного действия )

    Кроме вышеописанной проблемы это решает проблему видимости переменных BAS из повторно подключенного файла/модуля-js ( переменные которые в квадратных скобках [[]] )



  • А зачем await перед console.log? Это действие нынче асинхронное что ли?



  • @Oyasumi-Punpun Не знаю асинхронное оно или нет.
    Пробовал убирать await. Ничего не меняется.
    И сейчас еще раз протестировал. Убираю await и ничего не меняется.



  • Вот этот скрипт tst.xml


Log in to reply
 

  • 2
  • 2
  • 5
  • 2
  • 9
  • 8
  • 5
  • 2