我如何修改下面的代码,以便率:sayHello()有效? 如果我调用rate:testFunction()它可以工作,console.log(res);在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.');
}
});
}
答案 0 :(得分:-1)
不确定您要使用代码实现什么目标。但是,假设client.invoke
的回调只被调用一次,那么使用'回调'在sayHello
函数中的函数,以下代码应该起作用:
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.');
}
});
}