我是javascript新手,无法理解asyn函数。作为业余爱好者,我正在node.js, express
中制作一个Web应用程序。服务器端正在使用python-shell
执行一些更高级的计算。
执行完计算后,python-shell返回的值大约是我要存储在我的javascript数组(myArr)中的数字的1000倍。完成此过程后,我想将阵列发送到客户端(出于说明目的)。
下面的代码运行正常,这意味着python会一一返回数字(由console.log检查),而我的JavaScript会将我的数组发送给客户端。
不幸的是,我的结果数组(myArr)为空。这可能与asyn函数有关。希望有人可以帮助我,我如何首先用python-shell中的数据填充myArr,然后渲染页面?以下是我的代码的相关部分。
var myArr = [];
var count = 0;
var python = new PythonShell('majorPythonFile.py');
python.send(JSON.stringify([x1, x2,path, analyseType]));
python.on('message', function (message) {
myArr[count] = message;
count++;
console.log(message + ' ' + count);
});
# end the input stream and allow the process to exit
python.end(function(err){
if (err){
throw err;
}
console.log('finished');
});
res.render("home",{results:myArr});