我有这行代码:
let message = channel.consume(queue, msg => {
console.log('Return this in the "message" variable', msg.content);
});
当我尝试记录message
的值时,它不等于msg.content
,但它从consume
方法的返回值中获取值。为了让我从回调中获得正确的价值,我的解决方法是什么?
谢谢
答案 0 :(得分:1)
var message;
channel.consume(queue, msg => { message = msg.content; });
不确定你在问什么,但是你是否试图在回调中设置消息?如果是,请参见上文。
答案 1 :(得分:0)
您无法“返回”回调的值。此外,这样做没有什么意义,因为该代码之后的行将在回调甚至执行之前执行。
虽然它没有“返回”该值,但您可以使用Promise。
如果您可以从ES7进行转换,则可以使用async-await,它允许您使用async
在await
函数内使用同步代码调用异步函数。