gpt4 book ai didi

javascript - io.emit 不发送 promise 返回

转载 作者:行者123 更新时间:2023-12-03 04:55:22 25 4
gpt4 key购买 nike

io.emit('runPython', FutureValue().then(function(value) {
console.log(value); //returns 15692
return value; // socket sends: 42["runPython",{}]
}));

如上所述,我尝试在 io.emit 上发送 15692,但 promise 的函数没有返回该值,即使我可以在控制台中看到该值。

这是 FutureValue():

function FutureValue(){
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);
})
}

最佳答案

您当前将 Promise 作为第二个参数传递给 emit 方法,而不是解析的值。

相反,当 promise 解析时调用emit:

FutureValue().then(function(value) {
console.log(value); //returns 15692
io.emit('runPython', value);
});

或更短(没有console.log):

FutureValue().then(io.emit.bind(io, 'runPython'));

关于javascript - io.emit 不发送 promise 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42456761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com