Javascript Node.js返回res
我必须如何修改下面的代码才能使rates:sayHello()正常工作? 如果我调用rates:testFunction(),它可以工作,并且console.log(res);在sayHello中,它也起作用。谢谢Javascript Node.js返回res,javascript,node.js,Javascript,Node.js,我必须如何修改下面的代码才能使rates:sayHello()正常工作? 如果我调用rates:testFunction(),它可以工作,并且console.log(res);在sayHello中,它也起作用。谢谢 exports.getRates = (req, res) => { res.render('riscalc/rates', { title: 'Riscalc', rates: sayHello() });
exports.getRates = (req, res) => {
res.render('riscalc/rates', {
title: 'Riscalc',
rates: sayHello()
});
};
function testFunction() {
return 23;
}
function sayHello() {
client.invoke('s_hello', 'hello', (error, res, more) => {
if (error) {
console.error(error);
} else {
// console.log(res);
return res;
}
if (!more) {
console.log('Done.');
}
});
}
不确定你到底想用代码实现什么。但是,假设
client.invoke
的回调只调用一次,然后在sayHello
函数中使用“callback”函数,以下代码应该可以工作:
exports.getRates = (req, res) => {
sayHello(function (err, val) {
res.render('riscalc/rates', {
title: 'Riscalc',
rates: val
});
});
};
function testFunction() {
return 23;
}
function sayHello(callback) {
client.invoke('s_hello', 'hello', (error, res, more) => {
if (error) {
callback(error);
} else {
// console.log(res);
callback(null, res)
}
if (!more) {
console.log('Done.');
}
});
}
太好了,行得通。谢谢我一直在使用回调函数。client.invoke是一个zerorpc调用。const zerorpc=require('zerorpc');const client=new zerorpc.client();client.connect('tcp://127.0.0.1:4242');投反对票的原因是什么?对不起,点击错误。希望你能纠正:-)我不能,当点击向上箭头时,什么也没发生。