Я бегу следующий сценарий Python в Node.js через python-shell:Как запустить скрипт Python в Node.js синхронно?
import sys
import time
x=0
completeData = "";
while x<800:
crgb = ""+x;
print crgb
completeData = completeData + crgb + "@";
time.sleep(.0001)
x = x+1
file = open("sensorData.txt", "w")
file.write(completeData)
file.close()
sys.stdout.flush()
else:
print "Device not found\n"
И мой соответствующий Node.js код:
var PythonShell = require('python-shell');
PythonShell.run('sensor.py', function (err) {
if (err) throw err;
console.log('finished');
});
console.log ("Now reading data");
Выход:
Now reading data
finished
Но ожидаемый выход:
finished
Now reading data
Node.js не может выполнить мой скрипт Python синхронно, он выполняет сначала весь код, следующий за функцией PythonShell.run
, а затем выполняет PythonShell.run
. Как я могу выполнить первый PythonShell.run
, а затем следующий код? Любая помощь будет в основном оценена ... Это чрезвычайная ситуация!
Основной целью дизайна Node.js является выполнение задачи асинхронно. Не могли бы вы объяснить, почему это должно быть асинхронно? –
Фактически, я использую датчик цветного детектора. Обнаружение цвета выполняется скриптом python. И на основе обнаруженного цвета я должен выполнить некоторые другие вычисления, которые выполняются с помощью node.js. Я работаю с большим проектом, и обнаружение цвета является частью моих задач, и очень легко обнаружить цвет с помощью python, но другие вычисления необходимо выполнить с помощью node.js – Ramzan