在node.js中工作并尝试让节点运行python-shell,计算一个值,然后将computePython()的答案作为具有关键结果的对象返回。
如何获取返回结果的消息:FutureValue()? console.log(message)在.on中工作(' message' ..
function computePython(){
return {
result: FutureValue() // I want message from FutureValue() to show up here
};
}
function FutureValue(){
var rate = 0.05;
var nper = 10;
var pmt = 100;
var pv = 100;
var result;
new PythonShell('future_value.py', jsc(options, {
args: [rate, nper, pmt, pv]
}))
.on('message', function (message) {
console.log(message); //works
return message;
});
}
答案 0 :(得分:1)
由于此处理是异步处理,您可以使用Promise
使代码更清晰且可重复使用:
function computePython(){
getFutureValue().then(function(value) {
// do what you want with value here
});
}
function getFutureValue(){
var rate = 0.05;
var nper = 10;
var pmt = 100;
var pv = 100;
var result;
return new Promise(function(resolve, reject) {
new PythonShell('future_value.py', jsc(options, {
args: [rate, nper, pmt, pv]
}))
.on('message', resolve);
})
}