Значение переменной не изменяется при изменении в python-оболочке внутри app.post файла server.js - PullRequest
0 голосов
/ 01 апреля 2019

Я определил var x = 6, но внутри pyshell.on я изменяю его и печатаю за пределами pyshell. На нем все еще отображается x, равный 6.
Может кто-нибудь ответить почему и предложить решение, чтобы мое значение изменилось.
Вот мой код:


  console.log('email '+ req.body.email);
  console.log('width',req.body.widt);
  console.log('name with ext',req.body.email+'.'+req.body.fileExt)
  var x=6;
  let {PythonShell} = require('python-shell')
  var pyshell = new PythonShell('temp_file.py');



  pyshell.send(req.body.width); // permi error (tolerance)
  pyshell.send(req.body.email+'.'+req.body.fileExt); //image_NAME with (extension)
  pyshell.on('message', function (message) {
    console.log('result',message);  
    x=3;


  }); 
  console.log(x);

res.send([{name:'yobro',rollno:'743'},{name:'kyahas',rollno:'3324'}]);
});

1 Ответ

0 голосов
/ 01 апреля 2019

pyshell.on устанавливает прослушиватель событий с обратным вызовом (функция, которую вы определили). Затем узел выполняет следующий оператор, который записывает значение x. В то время обратный вызов еще не сработал, поэтому x по-прежнему равен 6.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...