如何从回调中获取值?

时间:2016-09-15 04:10:57

标签: javascript node.js

我有这行代码:

let message = channel.consume(queue, msg => {
  console.log('Return this in the "message" variable', msg.content); 
});

当我尝试记录message的值时,它不等于msg.content,但它从consume方法的返回值中获取值。为了让我从回调中获得正确的价值,我的解决方法是什么?

谢谢

2 个答案:

答案 0 :(得分:1)

var message;
channel.consume(queue, msg => { message = msg.content; });

不确定你在问什么,但是你是否试图在回调中设置消息?如果是,请参见上文。

答案 1 :(得分:0)

您无法“返回”回调的值。此外,这样做没有什么意义,因为该代码之后的行将在回调甚至执行之前执行。

虽然它没有“返回”该值,但您可以使用Promise

如果您可以从ES7进行转换,则可以使用async-await,它允许您使用asyncawait函数内使用同步代码调用异步函数。