console.log из node.js

Поддержка
  • Всем привет! Я только учусь, сильно не пинайте. Нагуглить решение не удалось (возможно плохо гуглил).
    Пытаюсь выводить сообщение из node-скрипта в консоль BASа.
    Код ниже.
    Самый первый console.log() - тестовый и срабатывает корректно.
    Все остальные - не выводят сообщение в панель Лог БАСа.
    Код рабочий - нужные действия он выполняет.
    Возможно дело в том что console.log вызывается в обработчиках событий.
    Как быть?
    Пробовал рядом с console.log записывать данные в переменную, но как-то тоже не увенчалось успехом.

    const SteamUser = require('steam-user');
    const SteamCommunity = require('steamcommunity');
    const SteamTotp = require('steam-totp');
    const TradeOfferManager = require('steam-tradeoffer-manager');
    const FS = require('fs');
    
    let client = new SteamUser();
    let manager = new TradeOfferManager({
    	"steam": client, // Polling every 30 seconds is fine since we get notifications from Steam
    	"domain": "example.com", // Our domain is example.com
    	"language": "en" // We want English item descriptions
    });
    let community = new SteamCommunity();
    
    // Steam logon options
    let logOnOptions = {
    	"accountName": "",
    	"password": "",
    	"twoFactorCode": SteamTotp.getAuthCode("")
    };
    
    if (FS.existsSync('polldata.json')) {
    	manager.pollData = JSON.parse(FS.readFileSync('polldata.json').toString('utf8'));
    }
    
    client.logOn(logOnOptions);
    console.log("Это сообщение в лог выводится");
    
    client.on('loggedOn', function() {
        console.log("Logged into Steam"); // А это не выводится
    });
    
    client.on('webSession', function(sessionID, cookies) {
    	manager.setCookies(cookies, function(err) {
    		if (err) {
    			console.log(err);
    			process.exit(1); // Fatal error since we couldn't get our API key
    			return;
    		}
    
    		console.log("Got API key: " + manager.apiKey); // И это не выводится
    
    		// Get our inventory
    		manager.getInventoryContents(730, 2, true, function(err, inventory) {
    			if (err) {
    				console.log(err);
    				return;
    			}
    
    			if (inventory.length == 0) {
    				// Inventory empty
    				console.log("CS:GO inventory is empty");
    				return;
    			}
    
    			console.log("Found " + inventory.length + " CS:GO items"); // И это не выводится
    		});
    	});
    
    	community.setCookies(cookies);
    });
    
    manager.on('sentOfferChanged', function(offer, oldState) {
        let msg = `Offer #${offer.id} changed: ${TradeOfferManager.ETradeOfferState[oldState]} -> ${TradeOfferManager.ETradeOfferState[offer.state]}`;
    	console.log(msg); // И это не выводится
    });
    
    manager.on('pollData', function(pollData) {
    	FS.writeFileSync('polldata.json', JSON.stringify(pollData));
    });
    
  • @Fox Спасибо!
    А правильно ли будет обернуть в промис каждый обработчик события? Или же как в примере надо оборачивать весь код?

  • @ArtemMedvedev said in console.log из node.js:

    @Fox Спасибо!
    А правильно ли будет обернуть в промис каждый обработчик события? Или же как в примере надо оборачивать весь код?

    Прочитайте ответ саппорта более внимательнее, особенно графу "Почему так?"

  • @Fox said in console.log из node.js:

    @ArtemMedvedev said in console.log из node.js:

    @Fox Спасибо!
    А правильно ли будет обернуть в промис каждый обработчик события? Или же как в примере надо оборачивать весь код?

    Прочитайте ответ саппорта более внимательнее, особенно графу "Почему так?"

    Благодарю. Всё получилось.