如何在变量中存储异步回调值?

时间:2018-08-06 08:42:53

标签: javascript python asynchronous

我是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});

0 个答案:

没有答案