Bread09
@Bread09
Newonkiy

Как достать переменную внутри функции?

Как получить значение переменной dataAdmin
Отсюда

return не работает

io.on('connection', (socket) => {
	console.log('Socket Run...')

	// ToDo ZONE
	socket.on('dataPush', (dataAdmin) => {
		// Query to DB
		fs.writeFileSync('data.json', JSON.stringify(dataAdmin));

		console.log('Data writing to DB');
		var dataIndex = fs.readFileSync('data.json');
		io.emit('dataPull', dataAdmin);
		sendNotification(message);
	});

	// Send sms
	return function returnDay(){
		socket.on('chat message', (msg) => {

			let sql = `INSERT INTO messages (id, text) VALUES (NULL, '${msg}')`;

			db.query(sql, (err, result) => {
				if (err) throw err;
				console.log('SMS adding to DB...');
			})

			io.emit('chat message', msg);
		});
	}


	// Disconnect
	socket.on('disconnect', () => {
		console.log('Socket STOP!');
	});
});

console.log(returnDay());


Я новичок, так что не пинайте
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
KickeRocK
@KickeRocK
FrontFinish
dataAdmin - это аргумент функции, соответственно существует только внутри этой функции.
Хотите получить его, создайте переменную вне этой функции и при каждом вызове пишите в неё значение этого аргумента, тогда сможете получить его на любом участке.
let globalDataAdmin = null;
io.on('connection', (socket) => {
  console.log('Socket Run...')

  // ToDo ZONE
  socket.on('dataPush', (dataAdmin) => {
    // Query to DB
    fs.writeFileSync('data.json', JSON.stringify(dataAdmin));

    console.log('Data writing to DB');
    var dataIndex = fs.readFileSync('data.json');
    io.emit('dataPull', dataAdmin);
    sendNotification(message);
    globalDataAdmin = dataAdmin;
  });

  // Send sms
  return function returnDay(){
    socket.on('chat message', (msg) => {

      let sql = `INSERT INTO messages (id, text) VALUES (NULL, '${msg}')`;

      db.query(sql, (err, result) => {
        if (err) throw err;
        console.log('SMS adding to DB...');
      })

      io.emit('chat message', msg);
    });
  }


  // Disconnect
  socket.on('disconnect', () => {
    console.log('Socket STOP!');
  });
});

console.log(returnDay());
console.log('Global Data Admin:',globalDataAdmin);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы